spring boot로 kotlin 프로젝트를 생성 후 돌려보면 에러가 난다.
검색을 해봤더니
코틀린은 상속을 남용하지 않고 상속에 대한 설계를 명확하게 작성하기를 바라기 때문에 class앞에 open 지시자를 사용해야했다.
코틀린은 default가 final이다.
@Service
open class UserInfoServiceImpl : UserInfoService {
@Autowired
private lateinit var userInfoRepository:UserInfoRepository
@Transactional(readOnly=true)
override fun findByAll():List<UserInfo> {
return userInfoRepository.findAll()
}
}
이런식으로 class 앞에 open을 사용하여 에러를 처리했는데
현재에는 maven이나 gradle에 dependency를 추가하면 에러가 나지 않는다.
아래와 같이 사용하면 된다!!!!!
maven ex)
gradle ex)
검색을 해봤더니
코틀린은 상속을 남용하지 않고 상속에 대한 설계를 명확하게 작성하기를 바라기 때문에 class앞에 open 지시자를 사용해야했다.
코틀린은 default가 final이다.
@Service
open class UserInfoServiceImpl : UserInfoService {
@Autowired
private lateinit var userInfoRepository:UserInfoRepository
@Transactional(readOnly=true)
override fun findByAll():List<UserInfo> {
return userInfoRepository.findAll()
}
}
이런식으로 class 앞에 open을 사용하여 에러를 처리했는데
현재에는 maven이나 gradle에 dependency를 추가하면 에러가 나지 않는다.
아래와 같이 사용하면 된다!!!!!
maven ex)
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
gradle ex)
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
댓글
댓글 쓰기