2017-06-15 5 views
-2

この質問は十分に簡単です。私はSpring Framework Reference:beans-javaセクションを読んでいると私は私を混乱させる部分が、それはする必要がないことも@Autowiredに関する春のリファレンスドキュメントの理解方法

注意を言い、具体的場所、終わりのノートである。この使用例を越え enter image description here

が来ましたターゲットの beanが1つのコンストラクタしか定義していない場合は、@Autowiredを指定します。上記の例では、RepositoryConfigコンストラクターで@Autowiredは不要です( )。

@Autowiredを削除できる理由がわかりません。RepositoryConfig()からですか?この場合のターゲットBeanとは何ですか?また、どのコンストラクタが参照していますか?

私はこれを再現しようとしましたが、ドキュメントにはAccountRepositoryクラスまたはTransferServiceクラスが用意されていません。どうすればいいか分かりません。再現可能な例が望ましいでしょう。

+0

このノートでは、ターゲットBeanである 'RepositoryConfig'クラスについて説明しています。これらのクラスはコンストラクタを参照しています。 – Andreas

+0

あなたの誤解が混乱しています。 'RepositoryConfig'コンストラクタでは' @ Autowired'は必要ないと言われています。そのため、RepositoryConfigはBean(クラス)であり、コンストラクタが1つしかないので、そのコンストラクタで '@ Autowired'を必要としません。 –

+0

私はノブだと言っていた(これが私がドキュメンテーションを読んでいた理由です)。 RepositoryConfigコンストラクタのパラメータがDatasource Beanを使用するため、「ターゲットBean」は私を捨てました。あなたがそれを説明するとき、確かにそれは意味をなさないが、それは私のためにはクリックしなかった。私はそれを再現しようとしましたが、コードは完全ではありませんでした(私は自分のコードでテストすることができました)ので、私はそれを理解しようと努力し、オンラインで検索しました。私は下の投票を感謝しません。クラスには3つの注釈があるので、RepositoryConfigをBeanにする理由はまだ分かりません。 – mdo123

答えて

1

4.3より前のSpringバージョンでは、@Autowiredで使用するコンストラクタに注釈を付ける必要がありました。あなたのクラスに単一のコンストラクタがあったとしても。あなたのクラスは、春には、自動的にあなたがそのコンストラクタを使用したいと仮定してあなたは、コンストラクタで@Autowiredを残すことができ、単一のコンストラクタを持って春4.3のよう

詳しくはthis blog、詳細はhereジラチケットを参照してください。

関連する問題