open 지시자, maven, gradle(spirng boot + kotlin)

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)

<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"
}


댓글