Spring、AOP详解
如何配置AOP查看:Spring、Hello
 AOP
1.对于拦截规则@Pointcut的介绍:
	@Pointcut("execution (* cn.raffaello.service..*.*(..))")
	private void anyMethod(){} // 声名一个切入点,声名方式比较奇特
注解:
// *      返回值类型  *为所有类型的返回值
// cn.raffaello.service  所拦截的包
// ..      如果使用..则表示要对拦截的包及下的所有子包进行拦截
// *.*   类.方法名    所拦截的包下的类.方法
// (..)   所拦截方法的参数 ..为不限定参数及类型  例(String,Integer,String)
2.前置通知、后置通知、最终通知、环绕通知、例外通知在Spring处理中存在的位置:
	@Before("anyMethod()")
	public void doAccessCheck(){
		System.out.println("前置通知");
	}
	@AfterReturning("anyMethod()")
	public void doAfterReturning(){
		System.out.println("后置通知");
	}
	@After("anyMethod()")
	public void doAfter(){
		System.out.println("最终通知");
	}
	@Around("anyMethod()")
	public void doAround(ProceedingJoinPoint pjp) throws Throwable{
		System.out.println("环绕通知前");
		pjp.proceed(); // proceed()  执行业务方法,可以在此前后添加拦截判断,权限状态等
		System.out.println("环绕通知后");
	}
	@AfterThrowing("anyMethod()")
	public void doAfterThrowing(){
		System.out.println("例外通知"); // 异常通知
	}
	
3.拦截特定参数、返回值、异常的方法
// 拦截只有一个参数,并且参数类型为String
@Before("anyMethod() && args(name)")
public void doAccessCheck(String name){
System.out.println("前置通知 Name:"+name);
}
// 拦截返回值类型是String的方法
@AfterReturning(pointcut="anyMethod()",returning="returnValue")
public void doAfterReturning(String returnValue){
System.out.println("后置通知 return:"+returnValue);
}
// 拦截异常类型为Exception的异常
@AfterThrowing(pointcut="anyMethod()",throwing="ex")
public void doAfterThrowing(Exception ex){
System.out.println("例外通知 例外:"+ex); // 异常通知
}
Spring、AOP详解的更多相关文章
- 【转载】Spring AOP详解 、 JDK动态代理、CGLib动态代理
		
Spring AOP详解 . JDK动态代理.CGLib动态代理 原文地址:https://www.cnblogs.com/kukudelaomao/p/5897893.html AOP是Aspec ...
 - Spring AOP详解(转载)所需要的包
		
上一篇文章中,<Spring Aop详解(转载)>里的代码都可以运行,只是包比较多,中间缺少了几个相应的包,根据报错,几经百度搜索,终于补全了所有包. 截图如下: 在主测试类里面,有人怀疑 ...
 - Spring AOP详解及简单应用
		
Spring AOP详解 一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址: ...
 - 转:Spring AOP详解
		
转:Spring AOP详解 一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址: ...
 - Spring Aop 详解二
		
这是Spring Aop的第二篇,案例代码很详解,可以查看https://gitee.com/haimama/java-study/tree/master/spring-aop-demo. 阅读前,建 ...
 - [Spring学习笔记 5 ] Spring AOP 详解1
		
知识点回顾:一.IOC容器---DI依赖注入:setter注入(属性注入)/构造子注入/字段注入(注解 )/接口注入 out Spring IOC容器的使用: A.完全使用XML文件来配置容器所要管理 ...
 - Spring系列(四):Spring AOP详解
		
一.AOP是什么 AOP(面向切面编程),可以说是一种编程思想,其中的Spring AOP和AspectJ都是现实了这种编程思想.相对OOP(面向过程编程)来说,提供了另外一种编程方式,对于OOP过程 ...
 - Spring Aop 详解一
		
Aop 是一个编程思想,最初是一个理论,最后落地成了很多的技术实现. 我们写一个系统,都希望尽量少写点儿重复的东西.而很多时候呢,又不得不写一些重复的东西.比如访问某些方法的权限,执行某些方法性能的日 ...
 - Spring AOP详解
		
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
 - Spring AOP详解 、 JDK动态代理、CGLib动态代理
		
AOP是Aspect Oriented Programing的简称,面向切面编程.AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理以及日志记录.AOP将这些分散在各个业务逻辑中的代码 ...
 
随机推荐
- 隐私模式启动IE 谷歌浏览器
			
C:\Program Files (x86)\Internet Explorer\iexplore.exe -privateC:\Program Files (x86)\Google\Chrome\A ...
 - Serv-U无法连接到服务器127.0.0.1,端口43958 FTP服务器不能启动
			
端口43958,这是Serv-U的本地管理端口,只允许127.0.0.1连接. 在出现“Serv-U无法连接到服务器127.0.0.1,端口43958”这个错误的时候,一般ftp软件无法自动启动 ...
 - uva12096 The SetStack Computer By sixleaves
			
代码 typedef map<Set, vector<Set> Setcache; stack< ci ...
 - javascript第十三课:Json
			
js中的json就是字典,Dictionary,就是字典的简化创建方式,json的遍历使用for in的方式,进行遍历 遍历复杂json格式 (如果数组里面存储的是键值对的话,字符串最好用双引号) v ...
 - Docker自学资源
			
1. Docker 的官方文档和博客: Docker官方文档 Docker Blog(官方博客 ) 2. Docker中文这区 网站上的[Docker手册]以及[Docker ppt]两个栏目有 Do ...
 - Newton‘ method 的优缺点
			
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzE1Mjg5NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
 - MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
			
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
 - Iterator(迭代器模式)--(超市管理者)
			
这个Iterator就是收银台干的活. package patterns.actions.iterator; public interface IteratorList { boolean isEmp ...
 - 【枚举+小技巧】【TOJ4115】【Find the number】
			
题目大意 找到一个最小的奇数 约数个数为n 结果mod10^9+7 根据 约数个数=(p1+1)*(p2+1)............ 将n 枚举分解成连乘式.(枚举个数,dfs) 比较大小 log ...
 - Jpa规范中persistence.xml 配置文件解析
			
使用spring data + hibernate 进行逻辑层操作时候需要配置 persistence.xml的内容 <?xml version="1.0"?> & ...