[解決済み】@Resourceと@Autowiredの比較
2022-04-29 02:21:09
質問
どのアノテーションか。 リソース ( jsr250 ) または オートワイヤード (Spring固有)をDIで使うべきでしょうか?
過去に両方をうまく使ったことがあります。
@Resource(name="blah")
と
@Autowired @Qualifier("blah")
私の直感では
@Resource
タグは、jsrの人たちによって承認されたものだからです。
どなたか強い考えをお持ちの方はいらっしゃいますか?
解決方法は?
Spring 3.0以前では、どれでもかまいません。
Spring 3.0 では、標準的な (
JSR-330
) アノテーション
@javax.inject.Inject
- を組み合わせて使用します。
@Qualifier
. Springは現在、以下のようなものもサポートしています。
@javax.inject.Qualifier
メタアノテーションを使用します。
@Qualifier
@Retention(RUNTIME)
public @interface YourQualifier {}
だから、あなたは
<bean class="com.pkg.SomeBean">
<qualifier type="YourQualifier"/>
</bean>
または
@YourQualifier
@Component
public class SomeBean implements Foo { .. }
そして
@Inject @YourQualifier private Foo foo;
これにより、スペルミスの可能性があり、保守が困難なString-namesを使用することが少なくなります。
最初の質問ですが、どちらもアノテーションの属性を指定することなく、型によるインジェクションを実行します。違いは
-
@Resource
は、注入されたビーンの名前を指定することができます。 -
@Autowired
を使用すると、それを非必須とマークすることができます。
関連
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] Spring Frameworkの@Injectと@Autowiredの違いは何ですか?どのような条件でどちらを使うか?
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み] JUnit 4で条件付きでテストを無視する
-
[解決済み] Springの@Autowiredの使い方を理解する
-
[解決済み】Spring @Autowired の使い方
-
[解決済み] 同じインタフェースを実装する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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] Mockitoを使用してクラスのメンバ変数をモック化する