https://github.com/spring-projects/spring-framework/blob/master/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.ktにコメントは、新しい "機能的Bean定義Kotlin DSL"でSpring Beanを定義する方法を示しています。私はまたhttps://github.com/sdeleuze/spring-kotlin-functionalを見つけました。しかし、この例では、という単純な文字列を使用しています。のブートではなく、の春です。 DSLをSpringと一緒に使う方法についてのヒントブートが好評です。「Functional Bean Definition Kotlin DSL」をSpring BootとSpring WebFluxで使用するには?
2
A
答えて
7
スプリングブートはJava Configに基づいていますが、hereのようにApplicationContextInitializer
サポートを介してユーザ定義のfunctional bean declaration DSLを実験的にサポートする必要があります。
実際には、Beans.kt
ファイルにbeans()
関数を含むBeanを宣言することができます。
class BeansInitializer : ApplicationContextInitializer<GenericApplicationContext> {
override fun initialize(context: GenericApplicationContext) =
beans().initialize(context)
}
そして最終的に、あなたのapplication.properties
ファイルで、この初期化子を宣言します:、main()
とテストを実行するとき、それはブートによってアカウントで撮影した作り、次のようApplicationContextInitializer
クラスを作成するために
fun beans() = beans {
// Define your bean with Kotlin DSL here
}
context.initializer.classes=com.example.BeansInitializer
完全な例はhereで、this issue機能的Bean登録のための専用Springブートサポートについて
+0
あなたの答えに関する2つの質問: *この初期化は、JUnitで 'SpringRunner'を使用してテストセットアップによって選択されます。 *この動作はテストで取り上げられる初期化を含め、 'properties'ファイルを作成しなくても可能ですか? ありがとう! –
関連する問題
- 1. Functional Webfluxを使用したファイルアップロード
- 2. Kotlin spring-boot @ConfigurationProperties
- 3. Kotlin&Spring Boot @ConfigurationProperties
- 4. Spring Boot Kotlin Jersey ModelValidationException
- 5. Bean Creation Exception spring boot
- 6. Spring WebFlux 5.0.RELEASEとSpring Security 5.0.M5
- 7. Spring BootでBean RestTemplateを設定する
- 8. Spring-BootプロジェクトでJavaMelodyを使用してSpring Beanを監視する
- 9. Spring Boot 2とKotlin(Maven付き)
- 10. 私はspring-boot-startter-data-mongodb-reactiveとspring-boot-starter-webfluxの依存関係を確認していません。
- 11. Spring BootでDSLを使用するApache Camel Restエンドポイントにパスを追加/
- 12. Spring MVC(async)vs Spring WebFlux
- 13. autowired annotation spring bootでjobService springバッチ管理を使用するには?
- 14. Spring Boot 2.0.0.M2の@BeanメソッドでRouterFunctionを登録するには?
- 15. Liberty Spring Boot対Spring Boot
- 16. spring-bootでは、spring beanなしでプロパティを取得できますか?
- 17. リクエストスコープのBeanを使用したSpring Boot依存性注入
- 18. Spring Boot/Thymeleaf/Hibernate:Sessionfactory Bean with Java Annotations
- 19. Spring WebFluxでInvalidDefinitionExceptionをPublisherをRequestBodyとして使用
- 20. Spring Bootで使用されるデフォルトのBeanスコープは何ですか?
- 21. spring-boot-starter-webとspring-boot-starter-web-servicesとspring-boot-startter-jerseyの相違点
- 22. Spring DSLを使用するApache Camel
- 23. Spring Boot OAuth2とUserDetails
- 24. Spring Boot + Spring Security + Spring OAuth2 + Googleログイン
- 25. spring-boot-maven-pluginの使用
- 26. 標準のSpring Boot、TomCat、Jetty、Servlet 3.1、Nettyに比べてSpring WebFluxの利点は何ですか?
- 27. Spring統合JMS DSL
- 28. spring-wsでspring-boot -SOAPエンドポイントにアクセスできない
- 29. spring webfluxをファイルストリーミングに使用する方法
- 30. Spring Security、Spring Boot、MongoDBを使用したパスワードのエンコーディングとデコード
あなたは試してみましたか?このbean定義をコントローラ(これはスプリングブートによって発見されます)に入れます。 – guenhter
はい、 'beans {...} 'の結果を返す' @ Bean'メソッドを使って '@ Configuration'クラスを試しました。それから、私は '@ Service'を削除し、上記の' '{...}'のラムダの中でサービスクラスを宣言すると例外が発生しました。 –