..
ตอนนี้ขอดูโดยการตัวอย่างเช่นวิธีการใช้ฉีดพึ่งพา constructor
เราสร้างถั่วของเราที่ขึ้นอยู่กับบริการทั่วไปที่ :
แพคเกจ it.mrwebmaster.di.constructor;
สาธารณะ Bean คลาส {
genericService GenericService เอกชน
beanName String เอกชน;
/ **
ผู้ผลิต *
* genericService @ Param
* beanName @ Param
* /
สาธารณะ Bean (GenericService genericService, String beanName) {
super ();
this.genericService = genericService;
this.beanName = beanName;
}
/ **
* วิธีการสาธารณะ
* /
ประชาชนเป็นโมฆะ doit () {
System.out.println (beanName +"ทำอะไร");
genericService.dosomething ();
}
}
การกำหนดค่าการพึ่งพา nell'applicationContext. XML
<bean id="genericService" class="it.mrwebmaster.di.constructor.GenericServiceImpl" scope="singleton" /> <bean id="constructorBean" class="it.mrwebmaster.di.constructor.bean"> value="beanName"/> <constructor-arg ref="genericService"/> <constructor-arg <Bean />
ที่สามารถเห็นได้จากตัวอย่างที่จะใช้ฉีดพึ่งพา constructor ต้องใช้การสร้างแท็ก Arg ใช้อ้างอิงหรือแอตทริบิวต์ค่า Ref Attibassi ต้องผ่านการเป็น Arg instantiated แล้ว nell'IoC อื่นภาชนะถั่วในขณะที่ค่าแอตทริบิวต์ที่ใช้ในการส่งผ่านค่าเริ่มต้นเป็นสตริงหรือตัวเลข
ในตัวอย่างสร้างคลาสที่ยอมรับเป็น input ถั่ว GenericService และสตริง แต่ตัวอย่างที่เขาต้องการที่จะกลับคำสั่งของการขัดแย้งเพื่อแสดงวิธีการฤดูใบไม้ผลิรวมอาร์กิวเมนต์ตามประเภทของตน
ประเภทของพฤติกรรมนี้จะปรับเมื่ออาร์กิวเมนต์ทั้งหมดเป็นประเภทแตกต่างกัน แต่ทำอย่างไรเราระบุลำดับถ้าอาร์กิวเมนต์เป็นชนิดเดียวกันหรือไม่
คอนสตรัคแท็ก Arg - ให้คุณลักษณะดัชนีที่บ่งชี้ลำดับในฤดูใบไม้ผลิด้วยซึ่งในการส่งผ่านพารามิเตอร์
<bean id="constructorBean" class="it.mrwebmaster.di.constructor.bean"> <constructor-arg value="beanName" index="1" /> <constructor-arg ref="genericService" index="0" /> <Bean />
กรณีอื่นอาจจะเป็นอย่างใดอย่างหนึ่งซึ่งคลุมเครือใน construttore ยอมรับเป็น input สองพารามิเตอร์ที่สามารถทั้งสองจะแสดงโดยสตริงตัวอย่างเช่น
สาธารณะ Bean (GenericService genericService, String beanName, invocationTimes Integer) {
super ();
this.genericService = genericService;
this.beanName = beanName;
this.invocationTimes invocationTimes =;
}
และ nell'applicationContext. XML
<bean id="constructorBean2" class="it.mrwebmaster.di.constructor.bean"> <constructor-arg value="0" /> <constructor-arg value="beanName" /> <constructor-arg ref="genericService" /> <Bean />ในกรณีนี้ฤดูใบไม้ผลิจากความผิดพลาดเป็น"0"สามารถเป็นได้ทั้งสตริงหรือตัวเลข เมื่อต้องการแก้ไขปัญหานี้ให้ใช้ดัชนีหรือ attriburo ประเภทแอตทริบิวต์เช่นนี้
<bean id="constructorBean2" class="it.mrwebmaster.di.constructor.bean"> <constructor-arg type="java.lang.Integer" value="0" /> <constructor-arg value="beanName" type="java.lang.String" /> <constructor-arg ref="genericService" /> <Bean />
สร้างคุณลักษณะ Arg - นอกจากนี้ยังสามารถใช้ในการผ่านพารามิเตอร์ไปยังวิธีการที่โรงงานที่ :
สาธารณะคงถั่ว createBean (GenericService genericService, String beanName, invocationTimes Integer) {
Bean B = ใหม่ Bean (genericService, beanName, invocationTimes);
/ / อย่า somethig .......
กลับ b;
}
nell'applicationContext. XML
<bean id="constructorBean3" class="it.mrwebmaster.di.constructor.bean" factory-method="createBean"> <constructor-arg type="java.lang.Integer" value="0" /> <constructor-arg value="beanName" type="java.lang.String" /> <constructor-arg ref="genericService" /> <Bean />
| |
ลินุกซ์ (หลักสูตร)
คู่มือที่สมบูรณ์ในระบบเปิดแหล่งที่มา จาก 49 € |
| |
PHP (หลักสูตร)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 49 € |
| |
Ruby และ Ruby on Rails (หลักสูตร)
สร้างโปรแกรมซอฟต์แวร์และเว็บด้วยทับทิมและ ร. จาก 39 € |