Kotlin이 Java와 100% 호환이 된다지만, 약간의 불편을 감수해야 하는 것 같다. 특히 뗄래야 뗄 수 없는 java-spring의 관계를 kotlin에서도 동일하게 가져가려면 좀 귀찮다.
spring의 구현 특성상 ltw가 많다. 그러나 kotlin의 클래스 확장 기본값은 final
이다. 때문에 spring에 의존적인 클래스는 대부분 open class
로 열어줘야한다.
이를 도와주기 위한 kotlin-spring plugins
이 있는데, 아래와 같다.
The plugin specifies the following annotations:@Component
@Async
@Transactional
@Cacheable
and@SpringBootTest
. Thanks to meta-annotations support classes annotated with@Configuration
@Controller
@RestController
@Service
or@Repository
are automatically opened since these annotations are meta-annotated with@Component
.
결국, 위 Annotation이 없는 클래스는 open class
로 지정을 해주어야 한다는 점.
- Bean을 Java 또는 Xml Config를 통해 정의 할 경우
@Async
@Transactional
@Cacheable
등을 Method Level에만 적용할 경우 등
약간의 불편함은 있지만 그래도 Kotlin을 쓰니 전체적인 코드생산성 측면에선 너무 좋으니께,,
'Development > Kotlin' 카테고리의 다른 글
코틀린 스터디 킥오프 (0) | 2019.09.18 |
---|