spring3: Aspectj后置返回通知
生活随笔
收集整理的這篇文章主要介紹了
spring3: Aspectj后置返回通知
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Aspectj后置返回通知
接口:
package chapter1.server;public interface IHelloService2 {public int sayAfterReturning(String param); }
接口實現
package chapter1.service.impl;import chapter1.server.IHelloService2;public class HelloService2 implements IHelloService2 {public int sayAfterReturning(String param) {// TODO Auto-generated method stubSystem.out.println("============ say after returning:" + param);return 1;}}
配置:
一定要加:<aop:aspectj-autoproxy/>?啟動對Aspectj的支持
<aop:aspectj-autoproxy/> <bean id="helloService" class="chapter1.service.impl.HelloService2" /> <bean id="aspect" class="chapter1.aop.HelloAspect2"/>
AOP切面:
一定要引入:org.aspectj.lang.annotation.Aspect;?否則不執行
package chapter1.aop;import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.AfterReturning;@Aspect public class HelloAspect2 {//方法一//通知@AfterReturning( //value="execution(* chapter1..*.sayAdvisorBefore(java.lang.String)) and args(param)",value="execution(* chapter1..*.sayAfterReturning(..))", argNames="retVal", returning="retVal")public void afterReturningAdvice(Object retVal){System.out.println("================= return after advice : " + retVal);}//方法二//定義切入點@Pointcut(value="execution(* chapter1..*.sayAfterReturning(java.lang.String) and args(param))", argNames="param")public void returnPointcut(String param) {}public void afterReturningAdvice2(Object retVal){}}
測試程序:
@Testpublic void testAspectAfterReturning(){ApplicationContext context = new ClassPathXmlApplicationContext("chapter1/aspectj2.xml");IHelloService2 hello = context.getBean("helloService", IHelloService2.class);hello.sayAfterReturning("hahah");}
結果:
============ say after returning:hahah
================= return after advice : 1
轉載于:https://www.cnblogs.com/achengmu/p/8574911.html
總結
以上是生活随笔為你收集整理的spring3: Aspectj后置返回通知的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缓存穿透、缓存击穿与失效时的雪崩效应
- 下一篇: LINUX系统为什么普及度不高?