freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ioc和aop的概念解決層與層之間的依賴關(guān)系以及重復(fù)業(yè)務(wù)的處理畢業(yè)設(shè)計論文正文-預(yù)覽頁

2025-06-25 19:20 上一頁面

下一頁面
 

【正文】 計說明書(論文) 第 3 頁 共 28 頁 依賴注入就是容器全權(quán)負責組件,給予其回調(diào)接口和上下文條件 。 [3] 實現(xiàn)方式 對于依賴注入,主要的 實現(xiàn)方式分別為接口注入( Interface Injection)、 Set方法注入( Setter Injection)和構(gòu)造注入( Constructor Injection)。 public interface IBiz{ /** * param dao 數(shù)據(jù)訪問層對象 */ public void getDao(Dao dao)。 } } 只有實現(xiàn) IBiz 接口才能完成依賴注入 。 public void setDao(Dao dao){ =dao。 public Biz(Dao dao){ =dao。 AOP 技術(shù)可以使業(yè)務(wù)邏輯的各個功能模塊耦合度降低,從而達到提高程序的重用性和開發(fā)效率。 ( 2) point cut(切入點): 對于切入點這個概念,它實質(zhì)上是一個捕獲連接點的一種結(jié)構(gòu) 。 ( 5) introduce(引入): 以附加屬性方法的形式達到修改對象結(jié)構(gòu)的目的 。此等做法的好處是在修改這些代碼的時候不影響業(yè)務(wù)邏輯,進一步體現(xiàn)了軟件開發(fā)的“開閉原則” 。 注解只是作為標識存在,一般不會直接影響到程序的語義,通過反射機制我們可以訪問到這些元數(shù)據(jù), 元數(shù)據(jù)就是用來描述數(shù)據(jù)的數(shù)據(jù) 。 [11] 基本作用 雖然對于注解的作用還沒有明確的定義,但是大致可以分為三種: ( 1) 編寫文檔: 檢查代碼中存在的標識注解來生成文檔 。 ( 2) Deprecated: 對于棄用的方法添加的注解。 [13] 3 基于注解的 IoC 和 AOP 的實現(xiàn) 就 IoC 而言, 主要實現(xiàn)是靠設(shè)計模式中的工廠模式,工廠模式負責將大量具有Component 注解的類進行實例化,而不必事先知道每次是要實例化哪一個類。假設(shè)一個調(diào)用者需要一個具體的產(chǎn)品,調(diào)用者并不需要知道產(chǎn)品具體是如何被生產(chǎn)的。 ( 3) 屏蔽產(chǎn)品類。 ( 4) 關(guān)于工廠方法的經(jīng)典應(yīng)用就是解耦合了 。那么在調(diào)用存在 Interception 注解的類的方法時,如果該方法已被攔截,則該方法執(zhí)行前和執(zhí)行后會進行相應(yīng)的 操作。 ( 2) 高擴展性: 對于產(chǎn)品類可能需求不同,但是只要是實現(xiàn)了其接口的,可通過代理手段代理各種產(chǎn)品類,而代理類卻不用做任何修改 。 具體注解的代碼如下: Component 注解 : public interface Component { //組件在 HashTable中的名字,當為空時默認為組件類名的小寫 public String name() default 。 } Interception 注解: public interface Interception { //攔截的方法 public String[]methods()。 File file=new File(()+xmlName)。 Element ele=()。 i ()。 } } } packageInfo=()。 //如果不存在或者也不是 一個目錄就直接返回 if(!()||!()){ return。 } })。 try { //添加到集合中 //(packageName+39。.39。 //是否迭代循環(huán) boolean recursive=true。 //定義一個枚舉的集合循環(huán)處理該目錄下的所有東西 EnumerationURL dirs。 //如果是文件形式保存在服務(wù)器上 if(file.equals(protocal)){ //(file類型的掃描 )。 }else if(jar.equals(protocal)){ //如果是 jar文件,則定義一個 jarFile JarFile jar。 String name=()。 } //如果前半部分與定義的包名相同 if((packageToDir)){ //若以 /結(jié)尾是一個包 int index=(/)。!()){ //去掉 .class獲取正真的類名 String className=(()+1,()6)。 } } } } catch (Exception e) { ()。 //(packageInfo)。 //獲取注解 name的屬性值 String Name=()。 } //最終將處理后或未處理的類名對應(yīng)的實例存入 cms中 (Name, ())。 //獲取組件時首先要判斷該組件是否存在 if(target==null){ throw new RuntimeException(對象不存在 )。 String ref=()。 (target, (ref, ()))。 //攔截的方法 String methods[]=()。 (().newInstance())。 } return (T)()。 AOP實現(xiàn)(攔截器) 對于攔截器, 其實就是代理模式的具體實現(xiàn), 首先需實現(xiàn) InvocationHandler 接口, 該接口 是代理實例的調(diào)用處理程序?qū)崿F(xiàn)的接口。具體代碼如下: public abstract class SpringInterceptor implements InvocationHandler { //目標對象 private Object target。 } public void setTarget(Object target){ =target。 } /** * 本科畢業(yè)設(shè)計說明書(論文) 第 16 頁 共 28 頁 * param target 攔截類的對象 * param method 攔截的方法 * param args 方法的參數(shù) * return 返回值 * throws IllegalArgumentException * throws IllegalAccessException * throws InvocationTargetException */ public abstract Object interceptor(Object target, Method method, Object[] args)throws IllegalArgumentException, IllegalAccessException, InvocationTargetException。 result=(target, args)。對于 AOP 編程,能實現(xiàn) 的功能主要有 事務(wù)處理、性能監(jiān)測、日志記錄、安全控制等 ,在這里只是象征性的輸出語句 。在 service 層將申明 dao 層的屬性,配有 setDao 方法獲取屬性對象。 servlet 根據(jù)請求的 op判斷該執(zhí)行什么操作,然后調(diào)用相應(yīng)的方法。當然也會判斷該屬性對應(yīng)的類是否需要方法攔截。 //將其轉(zhuǎn)換成 json數(shù)據(jù) String json=(users)。 ()。對于攔截的方法采用 AOP 編程思想, 將調(diào)用具有 Aspect 注解的類,在方法執(zhí)行 過程中執(zhí)行該類相應(yīng)的方法。 try { con=getCon()。 i++) { (i+1, o[i])。 } } 對攔截的方法同樣也會進行 AOP 處理。對于測試,主要運 本科畢業(yè)設(shè)計說明書(論文) 第 23 頁 共 28 頁 用 Junit4 測試。 ( 2) 根據(jù)包名獲取包及子包中所有類的測試。 ( 4) AOP 測試。 XML 文件及 測試代碼如下: XML 文件: ?xml version= encoding=UTF8? factory ponentpackage/ponentpackage /factory 測試代碼: public class XMLParseTest { Test public void test() { (().getPackage())。運行結(jié)果得知能獲取包中所有類,達到期望的效果。 for (Class? clz : classes) { (clz)。 Before public void setUp() throws Exception { of=()。 //獲取依賴對象 UserDao對象,調(diào)用 UserDao方法 delUser() ().delUser()。操作結(jié)果圖如 所示 : 圖 AOP測試 測試總結(jié) 對于本次框架的設(shè)計其中有涉及很多模塊的基本測試,在這里 就具體舉了幾個重要的測試。所以,有些事情你不去試試你永遠也不知道自己的能耐有多大,同時也說明了如果你試都不試,你就連失敗的機會都 沒有 。主要實現(xiàn)可通過接口、 setter 和構(gòu)造器進行注入。 在組件 設(shè)置 對象的時候同時也引入 AOP 的概念 ,對存在 Aspect 注解的類將對存在 Interception 注解的類指定的方法進行相應(yīng)的操作,在本文中只是象征性的輸出語句。雖然起初還是不懂是什么,但是后來的詢問以及張老師再一次的代碼演示使 我 漸漸了解到其中的奧秘 ,這才能讓我順利的完成這次的框架設(shè)計。雖然和他們接觸的時間都不算很長,但他們交給我們的卻可以讓我們獲益一生。雖然我們可能不是經(jīng)常在一起,但我們的聯(lián)系始終不斷,我們的關(guān)系還是
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1