..
Oluşturucu Bağımlılık Enjeksiyon fasulye arasındaki döngüsel bağımlılıkları oluşturulmasını sağlayabilir kullanın. Giden konu başlıkları bir nesne B örneği, ama aynı zamanda nesnenin bir nesne B ihtiyacı olması gerekiyorsa Örneğin, bu Oluşturucu bağımlılık enjeksiyon kullanılarak çözülemeyen bir bağımlılık oluşturur.
Böyle durumlarda belirleyici Bağımlılık Enjeksiyon Oluşturucu çok benzer ama fark nesne örneği sonra bağımlılıkları enjekte olduğu gerçeği yatıyor kullanmanız gerekir. İşte bir örnek:
{Public class Bean2
Özel GenericService genericService;
public void setGenericService (GenericService genericService) {
this.genericService = genericService;
}
kamu GenericService getGenericService () {
genericService dönmek;
}
/ **
* İş mantığı .............
* /
}
nell'applicationContext. xml
<bean id="setterBean" class="it.mrwebmaster.di.setter.Bean2"> <property name="genericService" ref="genericService" /> </ Fasulye>
Dairesel dipenze Setter Bağımlılık Enjeksiyon problem çözme ek olarak ayrıca Oluşturucu için tercih edilen bu nedenlerden dolayı, çalışma fasulye de tekrar düzenlenebilir. Düşünce Bazı okullar ise, iyi entrabe kullanmak olacağını söylüyorlar: Bu seçenekleri için gerekli bağımlılıkları ve belirleyiciler için yapıcı. Isteğe bağımlılıkları olduğu çok nadir gibi ayarlayıcı kullanmanız önerilir.
DI temel kullanım yanı sıra, orada böyle boş dizeler gibi Bahar sunduğu diğer özellikler vardır, ya da boş alanları enjekte edebilir:
<- NULL DEĞER 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/> </ kurucu-arg> </ Fasulye> <- 2 DEĞER NULL -> <bean id="nullBean2" class="it.mrwebmaster.di.setter.Bean2"> <property name="genericService"> <null/> </ property> </ Fasulye>
Bahar aynı zamanda bir yönetim türü Listesi toplanması, Set, Harita, Özellikler ve etiket listede, set, harita ve sahne sunar:
{Public class CollectionBean
özel Listesi <GenericService> beanList;
Özel Özellikleri beanProps;
Özel <String> beanSet Eylül;
Özel Harita <Integer, string> beanMap;
/ **
* İş mantığı ......................
* /
<GenericService> GetBeanList public List () {
geri beanList;
}
kamu Harita <Integer, string> getBeanMap () {
beanMap dönmek;
}
Genel Özellikleri getBeanProps () {
beanProps dönmek;
}
<string> GetBeanSet kamu Seti () {
beanSet dönmek;
}
public void setBeanList (Liste <GenericService> beanList) {
this.beanList = beanList;
}
public void setBeanMap (Map <Integer, string> beanMap) {
this.beanMap = beanMap;
}
public void setBeanProps (Özellikler beanProps) {
this.beanProps = beanProps;
}
public void setBeanSet (Set <String> beanSet) {
this.beanSet = beanSet;
}
}
nell'applicationContext. xml
<- FASULYE Koleksiyonu ->
<bean id="collectionBean" class="it.mrwebmaster.di.collection.CollectionBean">
<- LİSTESİ ->
<property name="beanList">
<list>
<ref bean="genericService"/>
</ Listesi>
</ Emlak>
<- ÖZELLİKLER ->
<property name="beanProps">
<props>
<prop key="prop1"> değer1 </ prop>
<prop key="prop2"> değer2 </ prop>
<prop key="prop3"> değer3 </ prop>
</ Aksesuvar>
</ Emlak>
<- SET ->
<property name="beanSet">
<AYAR>
</ değer> için <değer>
<değer> b </ değer>
</ Seti>
</ Emlak>
<- HARİTA ->
<property name="beanMap">
MAP
<entry key="1" value="value1" />
</ Harita>
</ Emlak>
</ Fasulye>
Bu tür birleştirme toplanması, iç fasulye ve işbirlikçileri gibi diğer konularda derinliği ile okuyucu bırakır.
| |
Linux (Ders)
Açık kaynak sistemi komple rehberi. 49 € düşük. |
| |
PHP (Ders)
Dinamik Web siteleri oluşturmak için tam ders. 49 € düşük. |
| |
Ruby on Rails ve Ruby (Ders)
Ruby ve RoR ile yazılım ve Web uygulamaları oluşturun. En düşük € 39. |