μ½νλ¦° 곡λΆλ₯Ό μμνλ €κ³ SpringBoot - kotlin νλ‘μ νΈλ₯Ό μΈν νλ κ³Όμ μ λλ€
곡μλ¬Έμ μ°Έκ³ νμλ©΄ λμμ΄ λ κ² κ°μ΅λλ€
https://spring.io/guides/tutorials/spring-boot-kotlin/
1. νλ‘μ νΈ μμ±
μμ κ°μ΄ μΈν νλλ° μ€νλ§λΆνΈ λ²μ μ΄ λ§μμ κ±Έλ Έλ€. μΈν 리μ μ΄μμ μ¬μ©κ°λ₯ν λ²μ μΌλ‘ μλ μΈν ν΄μ€κ² κ°μ§λ§ μμ¬μ€λ¬μ΄ λ§μμ
곡μννμ΄μ§μ λ€μ΄κ° νμΈνλ€.
https://spring.io/projects/spring-boot#support
μλλ‘ μ€ν¬λ‘€μ λ΄λ¦¬λ©΄ μκΉμ μλ―Έλ₯Ό νμΈν μ μλ€.
μ°μ νΉλ³ν μ΄λ€ νλ¬κ·ΈμΈμ μ¬μ©ν μ§ μκ°ν΄λκ² μκΈ° λλ¬Έμ νλ‘μ νΈ μμ±μ μ€μ λμ΄μλ 3.0.4 λ‘ νλ‘μ νΈλ₯Ό μΈν νλ€.
Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11
μ¬κΈ°μ.. λ¬Έμ κ° μκΈ΄λ€ Gradle Build μ€λ₯κ° λλ€ ... Srping 3.x λ²μ λΆν°λ Java 17 μ΄μ λ²μ μ΄ νμμ΄λ€. μ€λ₯κ° λ νμ μκ² λμλ€... (μ΄ λΆλΆ μ ν¨μ± κ²μ¬λ μ μν΄μ£Όμμ£ ,, ?) Java 11μ μ¬μ©νκ³ μμ΄μ 19λ‘ μ¬μ€μ νμλ€.
κ·Έλλ μλλ©΄ μλ λ§ν¬λ₯Ό ν΄λ¦νμ¬ μ΄κ²μ κ² ν΄λ³΄λ©΄λλ€.
https://jojoldu.tistory.com/698
2. Gradle μ΄ν΄
Spring μμ kotlinμ μ¬μ©νλ €λ©΄ μμμΌνλ μ€μν νλ¬κ·ΈμΈμ΄ μλ€.
Kotlin μ ν΄λμ€μ λ©€λ²(νλ‘νΌν°λ ν¨μ) λ final μ΄ μ€μ λμ΄μλ€. κ·Έλμ μμλ°μ μλ getter, setter λ±μ λ©μλλ₯Ό μ€λ²λΌμ΄λ ν μ μλ€.
κ·Έλμ kotlin μμ 곡μμ μΌλ‘ μ§μν΄μ£Όλ All-openμ»΄νμΌ νλ¬κ·ΈμΈμ μ μ©ν΄μ€λ€.
μ²μ Gradleμ΄ μμ±λμμ λ μλμ κ°μ μ½λκ° μλ€λ©΄ μΆκ°ν΄μ€λ€. μ¬λ¬ λΈλ‘κ·Έλ₯Ό μ°Έκ³ νλ©΄μ νκ³ μλλ° λ€λ€ μ¬λ¬κ°μ§.. μΆκ° νμλλ° λ λͺκ°λ μΆκ°λ₯Ό μνμ λ€. μ΄κ±°λ νλ‘μ νΈ μ€νν΄λ³΄λ©΄μ λ€μ μμ νκ±°λ λ λ μμ μ΄λ€
kotlin("plugin.spring") version "1.7.22"
allOpen {
annotation("javax.persistence.Entity")
annotation("javax.persistence.MappedSuperclass")
annotation("javax.persistence.Embeddable")
}
kotlin μμ open ν€μλκ° μμΌλ©΄ final λ‘ μ μ©λμ΄ open ν€μλκ° μλμ΄μ Proxy ν΄λμ€λ₯Ό μμ±νμ§ λͺ»νλ€.
(Proxy ν΄λμ€λ₯Ό μμ±νκΈ° μν΄ μμμ΄ κ°λ₯ν΄μΌ νλ€)
3. λ²μ κ΄λ¦¬
κΉμ μ¬λ¦½λλ€.
https://github.com/aejeong-context/aejeong_blog.git
μ΄μ νλ‘μ νΈν΄μΌμ§
+ ν μ€νΈ