博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring3: Aspectj后置返回通知
阅读量:7240 次
发布时间:2019-06-29

本文共 1662 字,大约阅读时间需要 5 分钟。

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 stub		System.out.println("============ say after returning:" + param);		return 1;	}}

  

配置:

一定要加:<aop:aspectj-autoproxy/> 启动对Aspectj的支持

  

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;@Aspectpublic 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)	{			}	}

  

测试程序:

@Test	public 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

转载地址:http://wyfbm.baihongyu.com/

你可能感兴趣的文章
Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动
查看>>
Linux嵌入式时区修改
查看>>
[ACM] HDU 5024 Wang Xifeng&#39;s Little Plot (构造,枚举)
查看>>
微软小子Kie
查看>>
JQuery的extend扩展方法
查看>>
Ubuntu10下MySQL搭建Amoeba_分片升级版
查看>>
ClassCastException[转贴]
查看>>
MySQL vs.MongoDB 各有胜负!
查看>>
寻找最大的K个数,Top K问题的堆实现
查看>>
DDD:在基于关系数据库的领域,聚合的边界等于并发管理的边界。
查看>>
新浪iphone微博小结
查看>>
[置顶] STM32移植contiki进阶之三(中):timer 中文版
查看>>
走进C++程序世界-----继承和派生(2)
查看>>
hdoj 2717 Catch That Cow
查看>>
迟来的2013年度总结
查看>>
NoSql数据库使用半年后在设计上面的一些心得 (转)
查看>>
乐在其中设计模式(C#) - 原型模式(Prototype Pattern)
查看>>
纯JavaScripst的全选、全不选、反选 【转】
查看>>
node-webkit学习(3)Native UI API概览
查看>>
基于Windows 配置 nginx 集群 & 反向代理
查看>>