一 配置
<?xml version="1.0" encoding="gbk"?>
程式設計客棧"annotation"
expression="org.aspectj.lang.annotation.aspect" />
二 切面類
package org.crazyit.app.aspect;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.*;
// 定義乙個切面
@aspect
public class txaspect
// 以改變後的引數去執行目標方法,並儲存目標方法執行後的返回值
object rvt = jp.proceed(args);
system.out.println("執行目標方法之後,模擬結束事務...");
// 如果rvt的型別是integer,將rvt改為它的平方
if(rvt != null && rvt instanceof integer)
rvt = (integer)rvt * (integer)rvt;
return rvt;
}}三 介面
hello
package org.crazyit.app.service;
public inte***ce hello
world
package org.crazyit.app.service;
public inte***ce world
四 實現類
helloimpl
package org.crazyit.app.service.impl;
import org.springframework.stereotype.component;
import org.crazyit.app.service.*;
@component("hello")
public class helloimpl implements hello
// 定義乙個adduser()方法,模擬應用中的新增使用者的方法
public int adduser(string name, string pass)
}worldimpl
package org.crazyit.app.service.impl;
import org.springframework.stereotype.component;
import org.crazyit.app.service.*;
@component("world")
public class worldimpl implements world
}五 測試類
package lee;
import org.springframework.context.*;
程式設計客棧import org.springframework.coqacuybntext.support.*;
import org.crazyit.app.service.*;
public class beantest
}六 測試結果
執行目標方法之前,模擬開始事務...
執行hello元件的foo()方法
執行目標方法之後,模擬結束事務...
執行目標方法之前,模擬開始事務...
執行hello元件的adduser新增使用者:【增加的字首】孫悟空
執行目標方法之後,模擬結束事務...
adduser()的返回值為:400
執行目標方法之前,模擬開始事務...
執行world元件的bar()方法
執行目標方法之後,模擬結束事務...
Spring AOP 程式設計
package com.xcl.common import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.after import org.aspectj.lang.annotation.afterre...
Spring aop的優先原則
spring aop的優先原則 在進入連線點時,最高優先順序的增強處理將先被織入 所以給定兩個before通知時,優先級別高的先執行 在退出連線點時,最高優先順序的通知會最後被織入 所以給定的兩個after通知中,優先級別最高的會第二個執行.before around afterreturning ...
Spring AOP的配置問題
好長時間不維護自己的部落格了,好象沒有維護自己部落格的習慣,只要將東西記到電子日記本上就完了。將東西放到網上曬一曬更好。今天公司的網斷了,然後發現tomcat啟動時竞然報錯,報錯的資訊為 cvc elt.1 cannot find the declaration of element beans 查...