사용자 도구

사이트 도구


kotlin:kotlin_spring

문서의 이전 판입니다!


Kotlin with SpringFramework

all-open / kotling-spring compiler plugin

  • Spring 의 경우 all-open 말고, kotlin-spring 플러그인을 사용하는게 낫다.
  • Kotlin 이 기본 final 클래스를 만드는 것을 특정 AOP 애노테이션(@Transactiona, @Component 등이 붙어있으면 open으로 컴파일 시점에 변경해줌.
  • IntelliJ IDEA File → Project Structure → Project Settings → Modules → Kotlin → Complier Plugins 에서 적용된 컴파일러 플러그인 목록 확인가능.

Field 초기화는 lateinit

  • 필드 포기화가 필요할 경우에는 lateinit 을 사용하면 null safe 한 필드 주입이 가능하면서 지연 초기화가 가능하다.
  • var 로 선언해야 함
@Autowired
private lateinit var objectMapper: ObjectMapper

no-arg / kotlin-jpa plugin

  • JPA Entity나, 일부 프레임워크는 기본 생성자를 필수적으로 필요로 한다.
  • kotlin-jpa 플러그인은 no-arg 플러그인을 래핑해서 JPA Entity 애노테이션이 있는 클래스에 자동으로 기본 생성자를 생성해준다. @Entity, @Embeddable, @MappedSuperclass 등.

Jackson

  • jacksonObjectMapper() 를 사용하면 Kotlin 모듈 자동 주입.
  • ObjectMapper()로 생성할거라면 registerKotlinModule() 호출 필요.

@ConfigurationProperties / @ConstructorBinding

  • Immutable data class 에 대해 SpringBoot 2.2 부터 생성자 바인딩 지원
@ConfigurationProperties("...")
@ConstructorBinding
data class MyProperties(val url: String)

참조

kotlin/kotlin_spring.1634169168.txt.gz · 마지막으로 수정됨: 2021/10/14 08:52 저자 kwon37xi