autowire = "byName"
いろいろ試してみたところ、Beanで使用していなかったことがわかりました。そのため、自動書き込みが行われていませんでした。
1)@Resourceを使用した場合と同じことをお聞きしたいと思います。つまり、そのためにBeanでautowireを作成する必要がありますか
2)しかし、一部のファイルでは、@ResourceはBeanにautowireを記述せずに機能しています
名前で自動配線する場合(デフォルトは@Autowiredアノテーション内のタイプによる)、基本的にそれと@Resourceの間に違いはありません。これらの自動配線されたBeanをxmlで定義するか、単に追加するかを選択できます。
<context:component-scan base-package="service"/>
application-context.xmlに追加します。ここで、service(たとえば)は、プロジェクト内のアノテーションをスキャンする場所をSpringに通知するパッケージです。次に、それらの注釈付きクラスを(そのパッケージ内で)自動的に検索します。
ワイヤリングするリソースの名前を指定するため、@Resource
アノテーションは自動ワイヤリングを使用しません。したがって、Beanで特定の自動ワイヤリング値を指定する必要はありません。
アノテーションを使用する場合でも、属性@Autowire
を設定する必要はありません。autowire
属性または注釈を使用しますが、両方は必要ありません。
@Resourceを使用した場合も同じです。つまり、そのためにBeanでautowireを作成する必要がありますか
効果は基本的に同じです。は、パッケージに含まれているスプリングからの@Resource
分離を提供します。と組み合わせて使用するのと同等ですjavax
@Resource
@Autowired
@Qualifier
しかし、一部のファイルでは、@ResourceはBeanでautowireを記述せずに機能しています
はい、それがどのように機能するかです。値に関係なく、のよう"autowire"-by-name
に適用すると実行されます。@Resource("someBean")
autowire = "byName"