문서의 이전 판입니다!
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)