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后置返回通知相关推荐
- C++函数后置返回类型
//后置函数返回类型声明 auto func(int a, int b)->void; //后置函数返回类型定义 auto func(int a, int b)->void {return ...
- C++11 - 返回类型后置
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105022843 返 ...
- [C++再学习系列] 前置++与后置++
前置++: type operator++(); 后置++: const type operator++(int ); 为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数,当函数被调 ...
- (转)前置++和后置++的区别
今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...
- C++之运算符重载(前置++和后置++)
今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...
- 前置++与后置++的要点分析
前置++和后置++,都是自增1,但是表达式返回值不同.执行效率上前置++更快. 前置++返回是自增之后的值. 等价于num+=1; rerurn num; 后置++返回的是自增之前的值. 等价于 i ...
- 前置++和后置++的区别
今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...
- Spring(十八):Spring AOP(二):通知(前置、后置、返回、异常、环绕)
AspectJ支持5种类型的通知注解: @Before:前置通知,在方法执行之前执行: @After:后置通知,在方法执行之后执行: @AfterRunning:返回通知,在方法返回结果之后执行(因此 ...
- spring21:Aspectj实现后置通知@AfterReturning
切面类: package com.atChina.Test2;import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation ...
最新文章
- 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...
- linux 访问不同网段
- 马昕璐201771010118《面向对象程序设计(java)》第七周学习总结
- 互联网日报 | 6月16日 星期三 | 滴滴试点早高峰拼成0佣金计划;小米“急”招自动驾驶相关人才;苹果正式推出播客订阅服务...
- 没有匹配的验证协议_ORA-28040:没有匹配的验证协议
- SpringMVC学习笔记七:SpringMVC的数据验证
- python10进制转2进制掩码_Python简单实现子网掩码转换的方法
- Android开发笔记(一百五十六)通过渲染纹理展示地球仪
- cookie 保存导航菜单的展开状态
- 数组对象 按某个属性排序
- python 插入数据库 b“Incorrect syntax near ‘,‘.DB-Lib error message 20018
- 项目开发 —— 一页纸项目管理(OPPM)
- vcpkg Ubuntu安装
- 小米手环 / 运动手环 记步功能原理
- 微商怎么做大做强,教你一套做微商全新打法
- 在Postfix里给邮箱定虚拟别名
- LeetCode1818:绝对差值和
- mac虚拟机服务器设置u盘启动不了怎么办,苹果MacBook Air u盘启动不了怎么办?
- Kubernetes 的网络原理 (五)---CNI网络模型
- Python求解二元二次函数梯度
热门文章
- php 获取请求设备,php – 如何获取设备令牌
- polkit 重新安装_不折腾,为U-NAS安装一个清爽的桌面,把小U打造成双面高手
- mysql怎么查看刷脏页慢_一条SQL查询语句极为缓慢,如何去优化呢
- mysql数据迁移到sqlserver_一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE...
- linux关闭远程服务器,linux – 远程主机关闭SSH连接
- linux内核编译如何选择cpu类型,Ubuntu内核编译和CPU Hot-Plug特性配置全过程及遇到问题记录...
- C语言 | 内部与外部函数
- ar面部识别_国内手机厂商AR布局报告
- mysql 隐藏中间四位_MySQL知识体系——索引
- 云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-