0

autowire = "byName"いろいろ試してみたところ、Beanで使用していなかったことがわかりました。そのため、自動書き込みが行われていませんでした。

1)@Resourceを使用した場合と同じことをお聞きしたいと思います。つまり、そのためにBeanでautowireを作成する必要がありますか

2)しかし、一部のファイルでは、@ResourceはBeanにautowireを記述せずに機能しています

4

3 に答える 3

1

名前で自動配線する場合(デフォルトは@Autowiredアノテーション内のタイプによる)、基本的にそれと@Resourceの間に違いはありません。これらの自動配線されたBeanをxmlで定義するか、単に追加するかを選択できます。

<context:component-scan base-package="service"/>

application-context.xmlに追加します。ここで、service(たとえば)は、プロジェクト内のアノテーションをスキャンする場所をSpringに通知するパッケージです。次に、それらの注釈付きクラスを(そのパッケージ内で)自動的に検索します。

于 2011-03-29T12:13:10.337 に答える
0

ワイヤリングするリソースの名前を指定するため、@Resourceアノテーションは自動ワイヤリングを使用しません。したがって、Beanで特定の自動ワイヤリング値を指定する必要はありません。

アノテーションを使用する場合でも、属性@Autowireを設定する必要はありません。autowire属性または注釈を使用しますが、両方は必要ありません。

于 2011-03-29T12:05:03.983 に答える
0

@Resourceを使用した場合も同じです。つまり、そのためにBeanでautowireを作成する必要がありますか

効果は基本的に同じです。は、パッケージに含まれているスプリングからの@Resource分離を提供します。と組み合わせて使用​​するのと同等ですjavax@Resource@Autowired@Qualifier

しかし、一部のファイルでは、@ResourceはBeanでautowireを記述せずに機能しています

はい、それがどのように機能するかです。値に関係なく、のよう"autowire"-by-nameに適用すると実行されます。@Resource("someBean")autowire = "byName"

于 2011-03-29T12:05:51.700 に答える