[解決済み] kotlinで@Autowiredのようなspringアノテーションを使用する方法とは?
2022-11-23 19:23:29
質問
Kotlinで以下のようなことは可能でしょうか?
@Autowired
internal var mongoTemplate: MongoTemplate
@Autowired
internal var solrClient: SolrClient
どのように解決するのですか?
Springで依存性注入を行うには、コンストラクタ注入を行うのがよいでしょう。
@Component
class YourBean(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}
Spring 4.3以前のコンストラクタは、明示的なアノテーションとして
Autowired
:
@Component
class YourBean @Autowired constructor(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}
稀なケースとして、フィールドインジェクションを使いたい場合があるかもしれません。
lateinit
:
@Component
class YourBean {
@Autowired
private lateinit var mongoTemplate: MongoTemplate
@Autowired
private lateinit var solrClient: SolrClient
}
コンストラクタ注入はBean作成時にすべての依存関係をチェックし、注入されたすべてのフィールドは
val
であるのに対し、lateinit の注入されたフィールドは
var
で、実行時のオーバーヘッドはほとんどありません。また、コンストラクタを持つクラスをテストするために、リフレクションは必要ありません。
リンク集です。
関連
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み] Springの@Autowiredの使い方を理解する
-
[解決済み] [Solved] アノテーションを使用して構成されたSpring Beanにプロパティ値を注入するにはどうすればよいですか?
-
[解決済み] Springで複数の@RequestMappingアノテーションを使用するにはどうすればよいですか?
-
[解決済み】Kotlin Androidでデータクラスに空のコンストラクタを作成する方法
-
[解決済み】Spring @Autowired の使い方
-
[解決済み] Spring Dataです。"delete by "はサポートされていますか?
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Springのセキュリティ認証の例外を@ExceptionHandlerで処理する
-
[解決済み] Spring Hibernate - 現在のスレッドでトランザクションに同期したセッションを取得できませんでした。
-
[解決済み] Spring Boot Rest Controllerは、異なるHTTPステータスコードを返すには?
-
[解決済み] Spring Boot JPA - 自動再接続の設定
-
[解決済み] SpringでLocalDateTime RequestParamを使用するには?StringからLocalDateTimeへの変換に失敗しました」と表示される。
-
[解決済み] Spring BootとMongoDBへの接続設定方法
-
[解決済み] なぜ春になると静電場が自動化されないのか?
-
[解決済み] Spring DAOとSpring ORMとSpring JDBCの比較
-
[解決済み] Spring Securityをセッションなしで使用するにはどうすればよいですか?
-
[解決済み] Spring Bootアプリケーションの環境指定application.propertiesファイル [終了しました]。