스프링부트 및 스프링웹플럭스와 함께 "기능성 콩 정의 코틀린 DSL"을 사용하는 방법?
https://github.com/spring-projects/spring-framework/blob/master/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt 의 댓글은 새로운 "기능성 콩 정의 코틀린 DSL"을 통해 봄 콩을 정의하는 방법을 보여줍니다.저도 https://github.com/sdeleuze/spring-kotlin-functional 을 찾았습니다.그러나 이 예제에서는 일반 Spring만 사용하고 Spring Boot는 사용하지 않습니다.DSL을 Spring Boot와 함께 사용하는 방법을 알려주시면 감사하겠습니다.
스프링 부트는 Java Config를 기반으로 하지만 다음을 통해 사용자 정의 기능적 빈 선언 DSL의 실험적 지원을 허용해야 합니다.ApplicationContextInitializer
여기에 기술된 바와 같은 지원
실제로, 예를 들어, 당신은 당신의 콩을 신고할 수 있어야 합니다.Beans.kt
가 들어 있는 파일beans()
기능.
fun beans() = beans {
// Define your bean with Kotlin DSL here
}
그럼 실행할 때 Boot에서 고려할 수 있도록 하기 위해서입니다.main()
테스트하고, 생성합니다.ApplicationContextInitializer
다음과 같은 클래스:
class BeansInitializer : ApplicationContextInitializer<GenericApplicationContext> {
override fun initialize(context: GenericApplicationContext) =
beans().initialize(context)
}
그리고 궁극적으로 이 이니셜라이져를 당신의application.properties
파일:
context.initializer.classes=com.example.BeansInitializer
여기에서 전체 예시를 찾을 수 있으며 기능성 콩 등록을 위한 전용 스프링 부트 지원에 대한 이 문제를 따를 수도 있습니다.
Spring Boot의 또 다른 방법은 다음과 같습니다.
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args) {
addInitializers(
beans {
// Define your bean with Kotlin DSL here
}
)
}
}
*Config.kt 파일에서 빈을 정의하고 ApplicationContextInitializer 인터페이스의 initialize 메서드를 구현할 수 있습니다.
override fun initialize(applicationContext: GenericApplicationContext) {
....
}
여기 콩의 정의가 있습니다.
bean<XServiceImpl>("xService")
bean("beanName") {
BeanConstructor(ref("refBeanName"))
}
언급URL : https://stackoverflow.com/questions/45935931/how-to-use-functional-bean-definition-kotlin-dsl-with-spring-boot-and-spring-w
'source' 카테고리의 다른 글
스크립팅 SVG (0) | 2023.10.29 |
---|---|
wp_insert_post()를 사용할 때 post_content 안에 구텐베르크 블록을 삽입하는 방법은? (0) | 2023.10.29 |
js 파일 내의 함수를 호출하려면 어떻게 해야 합니까? (0) | 2023.10.29 |
문자열에 숫자가 포함되어 있는지 확인합니다. (0) | 2023.10.29 |
$ (달러 기호) 구조화된 표기법에 대한 등가(Excel 워크시트 표) (0) | 2023.10.29 |