문서의 이전 판입니다!
all-open
말고, kotlin-spring
플러그인을 사용하는게 낫다.final
클래스를 만드는 것을 특정 AOP 애노테이션(@Transactiona
, @Component
등이 붙어있으면 open
으로 컴파일 시점에 변경해줌.lateinit
을 사용하면 null safe 한 필드 주입이 가능하면서 지연 초기화가 가능하다.var
로 선언해야 함@Autowired private lateinit var objectMapper: ObjectMapper
kotlin-jpa
플러그인은 no-arg
플러그인을 래핑해서 JPA Entity 애노테이션이 있는 클래스에 자동으로 기본 생성자를 생성해준다. @Entity
, @Embeddable
, @MappedSuperclass
등.jacksonObjectMapper()
를 사용하면 Kotlin 모듈 자동 주입.ObjectMapper()
로 생성할거라면 registerKotlinModule()
호출 필요.@ConfigurationProperties("...") @ConstructorBinding data class MyProperties(val url: String)