實際上這個確實非常好用。最近碰到乙個問題,就是發現以前action中的日誌記錄的不夠完善,需要在所有action中的每個介面改下呼叫日誌的方法,這種工作量太大而且毫無意義,因此就想到用aop。(當然也可以用***)
通過aop把所有action中的介面作為切點,設定對應的切面和方法,讓介面返回後進行返回通知,在這個通知方法中進行日誌記錄,既減少了**量,也利於修改。
spring aop有兩種實現方式,一種是在spring-mvc中進行配置,一種是通過註解的方式實現。
id="busilogaopaction"
class="com.edf.optrace.core.logaopaction"/>
id="busilogpointcut"
expression="execution(* com.edf.*.controller.*.*(..)) || execution(* com.abc.*.controller.*.*(..))" />
order="3"
ref="busilogaopaction">
method="afterreturnmethod"
pointcut-ref="busilogpointcut"
returning="result"/>
aop:aspect>
aop:config>
public
class
logaopaction
params += ";";
//2、處理註解的bean
for ( int i = 0; i < args.size(); i++) catch (exception e)
}
}string costtime = (string) request.getsession().getattribute("costtime");
if(!"".equals(stringutil.parsestring(classname)))
}}
/**
* 設定異常日誌aop
*/@aspect
@order(2)
@component
public
class
exlogaopaction
/*** 異常通知(方法發生異常執行的**)
* 可以訪問到異常物件;且可以指定在出現特定異常時執行的**
*@param joinpoint
*@param ex
*/@afterthrowing(value="declearjoinpointexpression()", throwing="ex")
public
void
afterthrowingmethod(joinpoint joinpoint, exception ex)
}
利用spring AOP 實現 sql注入檢測
轉 什麼是sql注入?所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安...
Spring AOP實現方式
spring中4中aop區別 1.advisor類 需要依賴spring介面,spring版本比較低時可以採取這種方式 2.適合使用者從低版本spring遷移到高版本spring,重複利用以前advice類情況 3.使用配置檔案形式定義切面,比較推薦的一種方式,使用於對維護性要求較高的情況 4.as...
Spring AOP簡單實現
下面用乙個簡單示例演示aop的使用,在執行目標方法前執行日誌輸出。這也是aop最重要的作用,分離與業務無關的 建立target類,是被 的物件,有乙個execute方法。package com.home.web.manager public class target 建立通知類,可以攔截目標物件的e...