文章詳情頁(yè)
Spring: A Developer’s Notebook筆記和小結(jié)(4)
瀏覽:4日期:2024-06-15 17:28:58
內(nèi)容: /**作者:Willpower來(lái)源:Rifoo Technology(http://www.rifoo.com)時(shí)間:2005-12-29備注:轉(zhuǎn)載請(qǐng)保留以上聲明**/本篇主要介紹使用Spring來(lái)進(jìn)行依賴(lài)注入,以及對(duì)以前代碼的改進(jìn)。如果你機(jī)器上沒(méi)有安裝Spring,需要先到官方網(wǎng)站(http://www.springframework.org)上去下載,將Spring的lib放到warWEB-INFlib下,讓?xiě)?yīng)用能夠找到它們。將現(xiàn)有應(yīng)用程序轉(zhuǎn)移到一個(gè)設(shè)計(jì)良好的POJO的基于Spring的應(yīng)用其實(shí)很簡(jiǎn)單,只需要以下幾個(gè)步驟:1 利用依賴(lài)注入的思想對(duì)現(xiàn)有代碼進(jìn)行重構(gòu)。model對(duì)象看作bean,service看作aspect。一般我們只有bean,而沒(méi)有使用到service。2 去掉代碼中實(shí)例化對(duì)象和設(shè)置依賴(lài)(即通過(guò)set方法設(shè)置)的那部分代碼。3 創(chuàng)建一個(gè)配置文件來(lái)描述bean和aspect。4 通過(guò)Spring來(lái)訪(fǎng)問(wèn)我們的代碼。下面我們就按照上面的步驟來(lái)改進(jìn)我們的程序:先看看管理我們bean和aspect的配置文件,目前這里沒(méi)有用到aspect。Example 1-9. RentABike-context.xml<?xml version='1.0' encoding='UTF-8'?> 'Bruce's Bikes' 這里的,后面的class是具體類(lèi),實(shí)際情況可能需要完整的包名+類(lèi)名的形式,這里使用的默認(rèn)包。而bean前面的id用來(lái)唯一標(biāo)示這個(gè)bean。下面的'Bruce's Bikes'是給這個(gè)bean設(shè)置屬性,這里就是所謂依賴(lài)注入的思想。屬性名和值可以被動(dòng)態(tài)的set到相應(yīng)的bean中去。下面這個(gè)commandLineView也一樣,只不過(guò)表示它有個(gè)屬性是rentaBike bean的一個(gè)引用。大家如果不明白,后面會(huì)講到具體的實(shí)現(xiàn)。接著來(lái)看看這個(gè)改進(jìn)后的裝配器:Example 1-10. RentABikeAssembler.javaimport org.springframework.context.support.ClassPathXmlApplicationContext;public class RentABikeAssembler { public static final void main(String[] args) { //使用這一句來(lái)讀取上面定義的配置文件 ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext('RentABikeApp-context.xml'); //完成依賴(lài)注入 CommandLineView clv = (CommandLineView)ctx.getBean('commandLineView'); clv.printAllBikes( ); }}它使用ClassPathXmlApplicationContext('RentABikeApp-context.xml')來(lái)讀取配置文件,Spring其實(shí)有很多方法來(lái)讀取配置文件,后面會(huì)陸續(xù)介紹的。ctx.getBean('commandLineView');這一句先到配置文件中去找id為commandLineView的bean,這個(gè)時(shí)候找到了其具體類(lèi)是CommandLineView,并將屬性和值注入到這個(gè)對(duì)象中。我們回顧一下改動(dòng)前的代碼:public class RentABikeAssembler { public static final void main(String[] args) { CommandLineView clv = new CommandLineView( );//1 RentABike rentaBike = new ArrayListRentABike('Bruce's Bikes');//2 clv.setRentaBike(rentaBike);//3 clv.printAllBikes( ); }}大家可以發(fā)現(xiàn)上面我注釋的3句是被替換掉了,這些操作是由Spring框架來(lái)完成了依賴(lài)注入。依賴(lài)注入的好處就是可以通過(guò)修改配置文件來(lái)給類(lèi)動(dòng)態(tài)加載相關(guān)的屬性和引用,而不用修改代碼。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd /**作者:Willpower來(lái)源:Rifoo Technology(http://www.rifoo.com)時(shí)間:2005-12-29備注:轉(zhuǎn)載請(qǐng)保留以上聲明**/本篇主要介紹使用Spring來(lái)進(jìn)行依賴(lài)注入,以及對(duì)以前代碼的改進(jìn)。如果你機(jī)器上沒(méi)有安裝Spring,需要先到官方網(wǎng)站(http://www.springframework.org)上去下載,將Spring的lib放到warWEB-INFlib下,讓?xiě)?yīng)?
標(biāo)簽:
Spring
相關(guān)文章:
1. asp知識(shí)整理筆記4(問(wèn)答模式)2. JAVA學(xué)習(xí)筆記:注釋、變量的聲明和定義操作實(shí)例分析3. Spring源碼解析之Bean的生命周期4. Sun 發(fā)布Java EE 5 &NetBeans 5.5 預(yù)覽版5. Spring框架通過(guò)工廠(chǎng)創(chuàng)建Bean的三種方式實(shí)現(xiàn)6. vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令簡(jiǎn)單示例7. 淺談Spring Bean的基本配置8. Java Bean與Map之間相互轉(zhuǎn)化的實(shí)現(xiàn)方法9. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(二)10. Effective java學(xué)習(xí)筆記4:避免創(chuàng)建重復(fù)對(duì)象
排行榜
