RequiredArgsConstructor(onConstructor = @__(@Autowired)) に修飾語を追加することはできますか?
2023-11-18 03:18:39
質問
もし私がアノテーション
@Qualifier
をコンストラクタの依存性注入に使いたい場合、次のようなものになるでしょう。
public class Example {
private final ComponentExample component;
@Autowired
public Example(@Qualifier("someComponent") ComponentExample component) {
this.component = component;
}
}
Lombokのアノテーションで、定型的なコードを減らし、コンストラクタを含めなくていいのは、以下のようになりますね。
@RequiredArgsConstructors(onConstructor=@__(@Inject))
しかし、これは修飾子を持たないプロパティでのみ機能します。
で修飾子を追加することが可能かどうか、誰か知っていますか?
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
?
どのように解決するのですか?
EDITです。
それは 最終的に 可能です を実行します! こんな風にサービスを定義してもらうことができます。
@Service
@RequiredArgsConstructor
public class SomeRouterService {
@NonNull private final DispatcherService dispatcherService;
@Qualifier("someDestination1") @NonNull private final SomeDestination someDestination1;
@Qualifier("someDestination2") @NonNull private final SomeDestination someDestination2;
public void onMessage(Message message) {
//..some code to route stuff based on something to either destination1 or destination2
}
}
ただし、プロジェクトのルートにこのようなlombok.configファイルがあることが条件です。
# Copy the Qualifier annotation from the instance variables to the constructor
# see https://github.com/rzwitserloot/lombok/issues/745
lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
この機能は最新のlombok 1.18.4で導入されました。私はこのことについてブログで書きましたし、この機能の実装を推進する主要な原動力の1つであったと自負しています。
- は 問題が議論されているブログ記事 詳細
- オリジナルの の問題
- また、小さな github プロジェクトで、その動作を確認することができます。
関連
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
セミコロン期待値エラー解決
-
Java基礎編 - オブジェクト指向
-
Java の double データ型における 0.0 と -0.0 の問題
-
[解決済み] Autowired - 依存関係にあるタイプの修飾されたビーンが見つかりません。
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み】@Resourceと@Autowiredの比較
-
[解決済み] バスタードインジェクションに代わるものはありますか?(デフォルトコンストラクタを使った貧乏人インジェクションです。)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
-bash: java: コマンドが見つからない 解決方法
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
Junitのユニットテストエラー
-
Java基礎編 - オブジェクト指向
-
代入の左辺は変数でなければならない 解答
-
Java:未解決コンパイル問題の解決方法
-
テストが空であるかどうかを判断するためのオプションの処理