2012-01-15 11 views
1

をオートワイヤリングそのあなたが依存性注入ie.Propertyまたはコンストラクタのsetter/configの方法以外を使用する場合、それがプライベート、パブリックないメンバーの可視性は、Spring 3.0.xのドキュメントで

例:として宣言すべきであると述べました。クラスAbcの

{ 

@Autowired 
private Def def;  //DEF may be a class or an Interface. 
... 
.... 

} 

が、私は春の2.5.5にしようと、それは公共作ってみました、それが働いていた...例外は

を投げのように、それはweired意味で振る舞っていなければならないのに、それが働いた理由niが把握できませんでした

私は春の依存関係およびPLSと初心者です私が良い例が

+1

これは文書内でどこから言いますか?参考にしてください。 – skaffman

+0

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html – Gaurav

+0

pls私が間違っている場合は私を修正してください – Gaurav

答えて

5

あなたのドキュメントを誤って読んで春のDIを学ぶために得ることができ、スプリングのウェブサイトを他のすべてのリソースを教えてください。

与えられたBeanクラスの1つのコンストラクタ(最大)が、この注釈を持ち、Spring Beanとして使用されたときにオートワイヤするコンストラクタを示すことができます。 このようなコンストラクタはpublicである必要はありません

フィールドは、設定メソッドが呼び出される前に、Beanの作成直後に挿入されます。 このような設定フィールドは公開する必要はありません

構成メソッドは、任意の名前と任意の数の引数を持つことができます。これらの引数のそれぞれは、Springコンテナ内の一致するBeanでオートワイヤードされます。 Beanのプロパティ設定メソッドは、事実上、このような一般的な設定メソッドの特殊なケースです。 このような設定方法は公開する必要はありません

「それは非公開」と宣言されるべきではありません。実際、ドキュメントには「プライベート」という言葉はまったく書かれていません。

つまり、Springはコンストラクタ、メソッド、またはフィールドの可視性が何であるか気にしません。