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. Spring Boot Kotlin Jersey ModelValidationException
- 2. Bean Creation Exception spring boot
- 3. Spring Boot 2とKotlin(Maven付き)
- 4. Spring BootでBean RestTemplateを設定する
- 5. Spring-BootプロジェクトでJavaMelodyを使用してSpring Beanを監視する
- 6. autowired annotation spring bootでjobService springバッチ管理を使用するには?
- 7. Liberty Spring Boot対Spring Boot
- 8. リクエストスコープのBeanを使用したSpring Boot依存性注入
- 9. spring-boot-starter-webとspring-boot-starter-web-servicesとspring-boot-startter-jerseyの相違点
- 10. Spring Bootで使用されるデフォルトのBeanスコープは何ですか?
- 11. Spring Boot OAuth2とUserDetails
- 12. Spring ConfigurationPropertiesとKotlin?
- 13. spring-boot-maven-pluginの使用
- 14. spring-wsでspring-boot -SOAPエンドポイントにアクセスできない
- 15. Spring Security OAuth2とActuatorを使用したSpring Boot
- 16. Spring Security、Spring Boot、MongoDBを使用したパスワードのエンコーディングとデコード
- 17. spring boot src/test/resource/
- 18. Spring-Boot MQTT構成
- 19. Spring Integration | Java DSL
- 20. Spring BootでAllNestedConditionsを使うには
- 21. Angular2 with Spring Boot and Spring Security
- 22. Spring-bootとspring-mvcとの互換性
- 23. eclipselink with spring boot
- 24. Spring BootとGoogle SSO
- 25. Camel - RabbitMQ spring boot
- 26. inMemoryAuthentication with Spring Boot
- 27. spring-bootでmysantにアクセスする
- 28. Springインテグレーション "Publish Subscribe Channel" with Spring DSL
- 29. MicroservicesとSpring BootでSpring AOPを使用できるかどうか
- 30. spring-bootでcxf
あなたは試してみましたか?このbean定義をコントローラ(これはスプリングブートによって発見されます)に入れます。 – guenhter
はい、 'beans {...} 'の結果を返す' @ Bean'メソッドを使って '@ Configuration'クラスを試しました。それから、私は '@ Service'を削除し、上記の' '{...}'のラムダの中でサービスクラスを宣言すると例外が発生しました。 –