對方進行預處理和後處理的兩種方法

2021-06-27 17:52:34 字數 1933 閱讀 7697

對方進行預處理和後處理的兩種方法:動態**和spring aop中的advice,具體的是使用舉例如下: 

1) 首先是公用部分的宣告:定義了乙個介面和對應的實現類,以及用來判斷攔截方法的兩個註解。 

首先定義乙個介面 

public inte***ce hello  

介面的實現 

public class helloimpl implements hello  

@override 

public void saymyself(string self)  

public static void main(string args)  

} 定義兩個註解 

註解1的定義 

@target() 

@retention(runtime) 

public @inte***ce methodlog  

註解2的定義 

@target() 

@retention(runtime) 

public @inte***ce mymethodlog  

2)使用**的方式攔截 

目的:通過動態**的方式攔截要**類的所有方法,然後判斷攔截到的方法上是否標註了methodlog的註解,

如果是,在執行方法的前後分別輸出:方法名 beging.和方法名 end. 

定義乙個實現了invocationhandler介面的類,實現invoke方法 

public class proxyinvocationhandler implements invocationhandler  

@override 

public object invoke(object proxy, method method, object args) throws throwable  

//通過反射的方式呼叫被**的物件的方法 

object ret = method.invoke(target, args); 

if (methodlogannotated)  

return ret; 

} } 

上述定義的**類的使用的方式 

public class proxycall , 

new proxyinvocationhandler(hello)); 

helloproxy.sayhello("alice"); } }

3)使用spring aop中的advice攔截 

目的:通過advice的方式,在被攔截到的所有方法執行前後輸出一些資訊,如果被攔截的方法上標註了metholog註解,

在該方法執行的前後分別輸出:執行 問候 begin.和執行 問候 end.;如果被攔截的方法上標註了mymethod註解,在該方法

執行的前後分別輸出:執行 slef begin.和執行 self end. 

首先定義實現了 methodbeforeadvice和 afterreturningadvice介面的類,分別實現他們各自的before方法和after方法 

public class methodlogadvice implements methodbeforeadvice, afterreturningadvice else if(annotation.annotationtype() == mymethodlog.class) 

} } 

@override 

public void afterreturning(object returnvalue, method method, object args, object target) throws throwable else if(annotation.annotationtype() == mymethodlog.class) 

} } 

} 使用的方式: 

public class springaop  

cmd和python兩種進行批處理操作

1.cmd命令列進行批處理,實現對某一檔案下所有檔案進行相同的處理 a.獲取資料夾下的檔案目錄,存入a.txt中 b.由於我是要對檔案進行sectionsing.exe c 程式產生的exe操作 要進行滿足其格式要求的操作,可以將所有檔案複製放到excel 中,再複製貼上到txt檔案中,並把txt檔...

異常處理的兩種方式

處理異常的兩種方式 1.繼續上拋 相當於推卸責任,把異常傳遞給呼叫者。2.自己捕捉 捕捉相當於自己攔下異常,把異常給解決了,呼叫者是不知道的。如果希望呼叫者處理異常,選擇throws上報異常。不希望呼叫者處理異常,選擇try catch捕捉。如果有乙個類,它的構造方法可能出現異常,我們選擇上報異常,...

異常處理的兩種方式

1.繼續上拋 相當於推卸責任,把異常傳遞給呼叫者。2.自己捕捉 捕捉相當於自己攔下異常,把異常給解決了,呼叫者是不知道的。如果希望呼叫者處理異常,選擇throws上報異常。不希望呼叫者處理異常,選擇try catch捕捉。如果有乙個類,它的構造方法可能出現異常,我們選擇上報異常,因為構造方法是上級呼...