..
コンストラクタの依存性注入は、Bean間の循環依存関係の創出につながることができる使用してください。 例えば、送信対象のヘッダは、オブジェクトBのニーズをオブジェクトBにインスタンス化する必要があるが、同時にオブジェクトなら、それはコンストラクタの依存性注入を使用して解決できない依存関係を作成します。
このようなケースでは、セッターの依存性注入を使用する必要がありますコンストラクタに非常に似ていますが、違いは、オブジェクトがインスタンス化された後に依存関係が注入されるという事実にある。 次に例を示します。
{publicクラスBean2
プライベートのGenericServiceののGenericService;
公共ボイドsetGenericService(のGenericServiceのGenericService){
this.genericService =のGenericService;
}
公共のGenericServiceのgetGenericService(){
のGenericServiceリターン、
}
/ **
*ビジネスロジック.............
* /
}
nell'applicationContext。xmlの
<bean id="setterBean" class="it.mrwebmaster.di.setter.Bean2"> <property name="genericService" ref="genericService" /> </ビーン>
円形dipenzeセッターの依存性注入の問題を解決することに加えても、それはコンストラクタに好まれているこれらの理由により、実行時にBeanに再構成することができます。 思考のいくつかの学校では、しかし、良いがentrabeを使用するだろうと言う:これらのオプションのために必要な依存関係とセッターのためのコンストラクタ。 それは、オプションの依存関係があることを非常にまれなので、それはセッターを使用することをお勧めします。
DIの基本的な使用に加えて、そこにそのような空の文字列として、Springが提供する他の機能は、です、または、ヌルフィールドを注入することができます。
<! - NULL VALUE 1 - > <bean id="nullBean1" class="it.mrwebmaster.di.constructor.bean" factory-method="createBean"> <constructor-arg type="java.lang.Integer" value="0" />という <constructor-arg type="java.lang.String" value="" /> <constructor-arg type="it.mrwebmaster.di.constructor.GenericService"> <null/> </コンストラクタ、引数> </ビーン> < - !2値のNULL - > <bean id="nullBean2" class="it.mrwebmaster.di.setter.Bean2"> <property name="genericService"> <null/> </プロパティ> </ビーン>
春はまた、管理タイプのリストのコレクション、セット、マップ、プロパティ、およびタグのリストを、セット、マップ、および小道具を提供しています。
{publicクラスCollectionBean
プライベートリスト<GenericService> beanList。
プライベートプロパティbeanProps;
プライベート<String>とbeanSet September;
プライベートマップ<Integer, string>はのbeanMap;
/ **
*ビジネスロジック......................
* /
<GenericService> getBeanList公開リスト(){
戻るbeanList;
}
公共マップ<Integer, string>はgetBeanMap(){
beanMapは返します。
}
パブリックプロパティgetBeanProps(){
beanPropsは返します。
}
<string>のgetBeanSetの公共セット(){
beanSetは返します。
}
公共ボイドsetBeanList(リスト<GenericService> beanList){
this.beanList = beanList;
}
公共ボイドsetBeanMap(マップ<Integer, string>はbeanMap){
this.beanMap = beanMap;
}
公共ボイドsetBeanProps(プロパティbeanProps){
this.beanProps = beanProps;
}
公共ボイドsetBeanSet(設定<string>のbeanSet){
this.beanSet = beanSet。
}
}
nell'applicationContext。xmlの
<! - BEANコレクション - >
<bean id="collectionBean" class="it.mrwebmaster.di.collection.CollectionBean">
<! - LIST - >
<property name="beanList">
<LIST>
<ref bean="genericService"/>
</一覧>
</物件>
<! - プロパティ - >
<property name="beanProps">
<props>
<prop key="prop1"> value1を</ PROP>
<prop key="prop2">値2 </ PROP>
<prop key="prop3">値3 </ PROP>
</小道具>
</物件>
<! - 設定 - >
<property name="beanSet">
<SET>
</値>に<value>の
<value>はB </値>
</設定>
</物件>
<! - MAP - >
<property name="beanMap">
<MAP>
<entry key="1" value="value1" />
</地図>
</物件>
</ビーン>
それは、マージ、内側の豆との共同研究者の集まりのような他の問題についての深さを読者に残す。
| |
Linuxの(コース)
オープンソースシステムへの完全なガイド。 49€から。 |
| |
PHP(コース)
動的なWebサイトを作成するためのフルコース。 49€から。 |
| |
RubyとRuby on Rails(コース)
RubyとRoRのと、ソフトウェアやWebアプリケーションを作成します。 39€から。 |