• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

코틀린으로 강의 따라하시는 분들이 계시다면 참고하세요. no-arg 설정이 필요합니다.

23.02.06 13:15 작성 23.02.06 21:44 수정 조회수 607

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

코틀린으로 예제를 해보시는 분들에게 도움이 되는 내용이네요. 감사합니다.

아직 코틀린으로 강의 예제를 해보지 않았는데 한번 작성하면서 필요한 팁을 정리해서 공유해보도록 하겠습니다.