1. 建立商品日誌記錄表 product_log
create sequence seq_product_log start
with1;
select
*from product_log;
create
table product_log(
pl_id number primary
key,
--主鍵
action_class varchar2(50)
,--始發類
method_name varchar2(50)
,--方法名
args varchar2(
100)
,--引數集
create_date date
default sysdate
)segment creation immediate;
2. 完成日誌記錄表的插入邏輯
"com.gxy.dao.productlogdao"
>
<
!-- 通用結果集對映--
>
"com.gxy.entity.productlog" id=
"baseresultmap"
>
"pl_id" property=
"piid"
/>
"action_class" property=
"actionclass"
/>
"method_name" property =
"methodname"
/>
"args" property=
"args"
/>
"create_date" property=
"createdate"
/>
<
/resultmap>
<
!-- 日誌記錄 --
>
"insertlog"
>
insert into product_log
(pl_id,action_class,method_name,args)
values
(seq_product_log.nextval,#
,#,#
)<
/insert>
<
3. 環繞增強蒐集日誌記錄引數,並測試
<
!-- 增強功能 --
>
"myinterceptor"
class
="com.gxy.aop.myinterceptor"
>
<
/bean>
<
!-- aop配置 編織 --
>
"execution(* com.gxy.service.productservice.*(..))" id=
"mypointcut"
/>
"myinterceptor" pointcut-ref=
"mypointcut"
/>
<
/aop:config>4. 環繞增強呼叫日誌記錄表的插入邏輯,完成日誌記錄功能
public
class
myinterceptor
implements
methodinterceptor
args = args.
replacefirst
("-",""
);//載入spring主配置檔案 建立工廠
new();
productlogservice productlogservice =
(productlogservice) context.
getbean
("productlogservice");
productlog productlog =
newproductlog()
; productlog.
setactionclass
(actionclass)
; productlog.
setargs
("args");
productlog.
setmethodname
(methodname)
;int i = productlogservice.
addlog
(productlog)
;//執行目標原方法
SpringAOP環繞通知的使用
在springaop中有五種通知,環繞通知是最為強大的通知。它能夠讓你編寫的邏輯將被通知的目標方法完全包裝起來。實際上就像在乙個通知方法中同時編寫前置通知和後置通知。本片文章具體講解環繞通知的使用。使用環繞通知定義切面 aspect public class audiencearound aroun...
Spring AOP 引入增強
上篇部落格寫到了 spring aop 不管是前置增強,後置增強,引入增強都是對方法的增強,但是是否考慮過對類進行增強呢?偉大的 spring 做到了,只是換了一種說法 introduction 引入 首先我們來說一下引入增強的目的 動態的讓被增強的類實現乙個介面 下面就寫一下 吧 定義了乙個新介面...
Spring aop學習示例
我這裡只貼出來關鍵類和配置檔案。aspect類 spring配置檔案 xmlns xsi xmlns context xmlns aop xmlns tx xmlns mvc xsi schemalocation spring beans 3.2.xsd spring context 3.2.xsd...