posted @ 2009-11-16 19:26 codingliyi 閱讀(546) | 評論 (0) | 編輯 收藏
摘要: Controller實現(xiàn)類
AbstractController:使用Template Method模式,包括了對緩存標(biāo)頭的處理、檢驗對請求方法(POST、GET)的支持,Session的取得與同步化等。
使用方式:繼承AbstractController類,覆蓋handleRequestInternal()方法。
MultiActionController與ParameterMethodNameResolver
在一個Controller類中定義多個方法,并根據(jù)使用者的請求來執(zhí)行當(dāng)中的某個方法,相當(dāng)于Struts的DispatcherAction。
使用MultiActionController需要配個一個MethodNameResolver實例,默認(rèn)使用ParameterMethodNameResolver,他會根據(jù)所給的網(wǎng)址中,最后請求的文件名稱來判斷執(zhí)行Controller中的哪一個方法。 閱讀全文
AbstractController:使用Template Method模式,包括了對緩存標(biāo)頭的處理、檢驗對請求方法(POST、GET)的支持,Session的取得與同步化等。
使用方式:繼承AbstractController類,覆蓋handleRequestInternal()方法。
MultiActionController與ParameterMethodNameResolver
在一個Controller類中定義多個方法,并根據(jù)使用者的請求來執(zhí)行當(dāng)中的某個方法,相當(dāng)于Struts的DispatcherAction。
使用MultiActionController需要配個一個MethodNameResolver實例,默認(rèn)使用ParameterMethodNameResolver,他會根據(jù)所給的網(wǎng)址中,最后請求的文件名稱來判斷執(zhí)行Controller中的哪一個方法。 閱讀全文
posted @ 2009-11-16 15:49 codingliyi 閱讀(1087) | 評論 (0) | 編輯 收藏
摘要: 在SpringMVC框架中,擔(dān)任前端控制器的org.springframework.web.servlet.DispatcherServlet。Web.xml文件配置代碼如下: 閱讀全文
posted @ 2009-11-15 22:32 codingliyi 閱讀(926) | 評論 (0) | 編輯 收藏
摘要: 五、Spring 持久層
對于不同的數(shù)據(jù)庫技術(shù),某些步驟是固定的,只有少部分不同。Spring運用Template Method模式,將固定的流程編寫與Temp類(JdbcTemplate、HibernateTemplate)之中,對不同的一些細(xì)節(jié)步驟,依托特定DAO支持對象來處理。
Spring的DAO框架并不拋出與數(shù)據(jù)庫技術(shù)相關(guān)的異常,Spring所有異常都是DataAccessException的子類,一個與數(shù)據(jù)庫技術(shù)無關(guān)的通用異常類,該類繼承至RuntimeException。
對于Jdbc存取,Spring將SQLException等轉(zhuǎn)化為自己的DAO異常對象。
閱讀全文
對于不同的數(shù)據(jù)庫技術(shù),某些步驟是固定的,只有少部分不同。Spring運用Template Method模式,將固定的流程編寫與Temp類(JdbcTemplate、HibernateTemplate)之中,對不同的一些細(xì)節(jié)步驟,依托特定DAO支持對象來處理。
Spring的DAO框架并不拋出與數(shù)據(jù)庫技術(shù)相關(guān)的異常,Spring所有異常都是DataAccessException的子類,一個與數(shù)據(jù)庫技術(shù)無關(guān)的通用異常類,該類繼承至RuntimeException。
對于Jdbc存取,Spring將SQLException等轉(zhuǎn)化為自己的DAO異常對象。
閱讀全文
posted @ 2009-11-09 20:30 codingliyi 閱讀(338) | 評論 (0) | 編輯 收藏
摘要: 四、SpringAOP
學(xué)習(xí)AOP必須首先要學(xué)習(xí)代理模式。詳見我的上一篇筆記:AOP基礎(chǔ):動態(tài)代理
AOP觀念與術(shù)語
1.橫切關(guān)注點(Cross-cutting concern)
類似于日志記錄、安全檢查、事務(wù)等系統(tǒng)層面的服務(wù),在一些應(yīng)用程序中常被尖刀安插至各個對象的處理流程中,這些動作在AOP術(shù)語中被稱為橫切關(guān)注點。
2.切面(Aspect)
將散落于各個業(yè)務(wù)對象中的橫切關(guān)注點(如日志記錄)收集起來,設(shè)計各個獨立可重用的對象,這些對象被稱為切面。如上篇筆記中的Handler類。在需要該服務(wù)時,織入(Weave)應(yīng)用程序之上。
3.Advice
Aspect的具體實現(xiàn)被稱之為Advice。例如,Advice中會包括日志記錄程序代碼是如何實現(xiàn)的。Advice中包含了橫切關(guān)注點的行為或提供的服務(wù)。
4.Joinpoint
Aspect在應(yīng)用程序執(zhí)行時加入業(yè)務(wù)流程的點或時機。這個時機可能是某個方法執(zhí)行之前或之后或兩者都有,或是某個異常發(fā)生的時候。
閱讀全文
學(xué)習(xí)AOP必須首先要學(xué)習(xí)代理模式。詳見我的上一篇筆記:AOP基礎(chǔ):動態(tài)代理
AOP觀念與術(shù)語
1.橫切關(guān)注點(Cross-cutting concern)
類似于日志記錄、安全檢查、事務(wù)等系統(tǒng)層面的服務(wù),在一些應(yīng)用程序中常被尖刀安插至各個對象的處理流程中,這些動作在AOP術(shù)語中被稱為橫切關(guān)注點。
2.切面(Aspect)
將散落于各個業(yè)務(wù)對象中的橫切關(guān)注點(如日志記錄)收集起來,設(shè)計各個獨立可重用的對象,這些對象被稱為切面。如上篇筆記中的Handler類。在需要該服務(wù)時,織入(Weave)應(yīng)用程序之上。
3.Advice
Aspect的具體實現(xiàn)被稱之為Advice。例如,Advice中會包括日志記錄程序代碼是如何實現(xiàn)的。Advice中包含了橫切關(guān)注點的行為或提供的服務(wù)。
4.Joinpoint
Aspect在應(yīng)用程序執(zhí)行時加入業(yè)務(wù)流程的點或時機。這個時機可能是某個方法執(zhí)行之前或之后或兩者都有,或是某個異常發(fā)生的時候。
閱讀全文
posted @ 2009-11-08 20:12 codingliyi 閱讀(602) | 評論 (0) | 編輯 收藏
摘要: 在了解動態(tài)代理之前,有必要先知道什么是靜態(tài)代理。
1. 靜態(tài)代理
在靜態(tài)代理的實現(xiàn)中,代理對象與被代理對象都必須實現(xiàn)同一個借口,在代理對象中可以實現(xiàn)日志記錄等相關(guān)服務(wù),并在需要的時候在呼叫被代理對象。如此代理對象中就可以僅保留業(yè)務(wù)相關(guān)職責(zé)。
閱讀全文
1. 靜態(tài)代理
在靜態(tài)代理的實現(xiàn)中,代理對象與被代理對象都必須實現(xiàn)同一個借口,在代理對象中可以實現(xiàn)日志記錄等相關(guān)服務(wù),并在需要的時候在呼叫被代理對象。如此代理對象中就可以僅保留業(yè)務(wù)相關(guān)職責(zé)。
閱讀全文
posted @ 2009-11-07 21:27 codingliyi 閱讀(260) | 評論 (0) | 編輯 收藏
摘要: Spring的核心是個lightweitht 的container,他是實現(xiàn)IOC容器、非侵入性(No Intrusive)的框架,并提供AOP概念的實現(xiàn)方式,提供Persistence、transaction的支持,提供MVC Web框架的實現(xiàn),并對一些常用的企業(yè)服務(wù)API提供一致的模型封裝,是一個全方位的Application Framework。
一、Spring部分術(shù)語介紹
No Intrusive:應(yīng)用程序幾乎感覺不到框架的存在,減低應(yīng)用程序在框架移植時的負(fù)擔(dān),進(jìn)一步增加應(yīng)用程序組件的Reusability。
控制反轉(zhuǎn)(IoC):依賴關(guān)系的轉(zhuǎn)移。程序不應(yīng)依賴實現(xiàn),而是依賴于接口。
即如果A依賴B,則B擁有控制權(quán)。依賴關(guān)系的反轉(zhuǎn)即是控制關(guān)系的反轉(zhuǎn),將控制權(quán)由實現(xiàn)的一方轉(zhuǎn)移至抽象的一方,藉由讓抽象方擁有控制權(quán),可以獲得組件的殼重用性。
在例子中,整個控制權(quán)從實際的FloppyWriter轉(zhuǎn)移到抽象的IDeviceWriter接口上m而讓Business依賴于ID 閱讀全文
一、Spring部分術(shù)語介紹
No Intrusive:應(yīng)用程序幾乎感覺不到框架的存在,減低應(yīng)用程序在框架移植時的負(fù)擔(dān),進(jìn)一步增加應(yīng)用程序組件的Reusability。
控制反轉(zhuǎn)(IoC):依賴關(guān)系的轉(zhuǎn)移。程序不應(yīng)依賴實現(xiàn),而是依賴于接口。
即如果A依賴B,則B擁有控制權(quán)。依賴關(guān)系的反轉(zhuǎn)即是控制關(guān)系的反轉(zhuǎn),將控制權(quán)由實現(xiàn)的一方轉(zhuǎn)移至抽象的一方,藉由讓抽象方擁有控制權(quán),可以獲得組件的殼重用性。
在例子中,整個控制權(quán)從實際的FloppyWriter轉(zhuǎn)移到抽象的IDeviceWriter接口上m而讓Business依賴于ID 閱讀全文
posted @ 2009-11-06 18:43 codingliyi 閱讀(719) | 評論 (0) | 編輯 收藏
posted @ 2008-12-16 18:47 codingliyi 閱讀(1750) | 評論 (29) | 編輯 收藏