利用Spring AOP實現業務和異常日誌記錄

2021-08-03 05:57:13 字數 1481 閱讀 4479

實際上這個確實非常好用。最近碰到乙個問題,就是發現以前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...