해결된 질문
작성
·
766
·
수정됨
4
BeanPostProcessor는 매개변수가 없는 no-arg 생성자를 필요로 하는데요, 자바의 경우 굳이 매개변수를 생성자에서 주입하지 않아도 되지만 코틀린의 경우 JPA 엔티티나 현재 강의의 ServerProperties처럼 프로퍼티값을 읽어들여 객체를 생성하는 경우 생성자 파라미터를 보통 사용하실 텐데요,
이 경우 따로. noarg 생성자가 만들어지지 않기 때문에 BeanPostProcessor가 디폴트 생성자를 만들어낼 수 있도록
kotlin("plugin.allOpen") kotlin("plugin.noArg")을 이용해서 @Component 어노테이션으로 빈에 대한 no-arg 기능을 활성화해야합니다.
gradle에서 다음과 같이 plugin을 포함하시구요
plugins{
kotlin("plugin.noarg") version "1.7.22"
//jpa를 사용하신다면 kotlin("plugin.jpa")에 포함되어 있습니다.
}
아래에 Component 어노테이션에서 no-arg가 활성화될 수 있게 해당 부분을 적어주시면 됩니다.
noArg {
annotation("org.springframework.stereotype.Component")
}
all-open, no-arg 등의 플러그인에대한 더 자세한 설정에 대해서 궁금하시다면 아래 글을 참고하시면 좋습니다.
https://techblog.woowahan.com/2675/
답변 1
5
코틀린으로 예제를 해보시는 분들에게 도움이 되는 내용이네요. 감사합니다.
아직 코틀린으로 강의 예제를 해보지 않았는데 한번 작성하면서 필요한 팁을 정리해서 공유해보도록 하겠습니다.