璁?java 鍔ㄦ?/a> 灝辨槸閭g偣涓滆タ 浣咺BM 鍖呭嚭涓ソ鐢ㄧ殑妗嗘灦 鏉?銆?br />
3銆備唬鐮佽鏄?br />//*******************Dao.java ****************************
package聽tt;
//涓轟簡綆鍗?session 鐪嬫垚鏄?鐪熺殑session 鍝?^_^
public聽class聽Dao聽{
聽聽聽聽public聽String聽session聽=聽"close"聽;聽
聽聽聽聽
聽聽聽聽public聽void聽testDao(){
聽聽聽聽聽聽聽聽System.out.println(聽"testDao聽in聽function聽:聽"+聽session);
聽聽聽聽}
聽聽聽聽
聽聽聽聽static聽public聽void聽main(String[]args){
聽聽聽聽聽聽聽聽Dao聽dao聽=聽new聽Dao()聽;
聽聽聽聽聽聽聽聽dao.testDao();
聽聽聽聽聽聽聽聽System.out.println("main聽in聽function聽:聽"聽+聽聽dao.session);
聽聽聽聽}
}
//*****************List.aj ****************************
package聽tt;
public聽aspect聽List聽{
聽聽聽 //鍒囩偣聽 鑼冨洿澹版槑聽 錛圖ao.testDao 褰?readOnly鍒囩偣綆÷?錛?
聽聽聽聽pointcut聽readOnly(Dao聽dao):execution(*聽*Dao.testDao*(..))&&this(dao);
聽聽聽聽//鎸傝澆 readOnly 寮濮嬫柟娉?
聽聽聽聽聽before(Dao聽dao)聽:聽聽readOnly(dao)聽{聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽openSession(dao);
聽聽聽聽聽聽}
聽聽聽聽 //鎸傝澆 readOnly 緇撴潫鏂規硶
聽聽聽聽聽after(Dao聽dao)聽returning()聽聽:聽聽readOnly(dao)聽{
聽聽聽聽聽聽聽聽聽聽close(dao);
聽聽聽聽聽}
聽聽聽聽
聽聽聽聽 // readOnly 鏂規硶 榪愯浠g爜 錛堝埌榪欏彲浠ュぇ鑳嗙殑鍐?java 浠g爜浜?錛?銆傘傘傘?/font>
聽聽聽聽聽private聽void聽openSession(Dao聽dao)聽{
聽聽聽聽聽聽聽聽聽if(dao.session.equals("close"))
聽聽聽聽聽聽聽聽聽聽聽聽聽dao.session聽=聽"Session聽Open";
聽聽聽聽聽}
聽聽聽聽聽private聽void聽close(Dao聽dao)聽{
聽聽聽聽聽聽聽聽聽dao.session聽=聽"close"聽;
聽聽聽聽聽}
}
4銆傜粨鏋滐細
testDao in function : Session Open
main in function : close
4銆傚悗緇?br />AspectJ 浣?AOP 綆鍗?
鍙兘榪樹細緇熶竴鏍囧噯
鑳戒負鎴戜滑鐨刯ava 妗嗘灦鐏墊椿 鏇翠笂涓灞?錛堟湡寰咃級

]]>