Spring AOP的配置是较为复杂的。所以Spring引入了AspectJ,来定义切面。
切面是由切点(PointCut)和增强(Advice)组成的。 @AspectJ使用了JDK5.0中的注解技术,简化了Spring AOP的配置。
增强类型:
1. @Before
与MethodBeforeAdvice相对应,即在方法执行前织入代码
2. @AfterReturning
与AfterReturningAdvice相对应,即在方法执行后织入代码
3. @After
没有对应的Advice, 在方法执行完后或者抛出异常后织入代码,跟finally类似
4. @Around
与@MethodInterceptor相对应,在方法执行前后织入代码,可以在增强方法(织入代码)中传入参数ProceedingJoinPoint, 执行其proceed() 执行target的方法。
5. @AfterThrowing
与ThrowsAdvice对应,在抛出异常后织入代码。
6. @DeclareParents
与IntroductionAdvice对应,可以通过defaultImpl,继承某个子类,实现添加新的属性和方法。
切点表达式函数:
1. 方法切点函数:
execution(): 参数: 方法匹配模式。 匹配方法名符合上述模式的方法
annotation(): 参数: 标注类。 匹配所有标注了该标注的方法
2. 方法参数切点函数:
args(): 参数: 方法参数的类型。匹配所有参数类型为该类型的方法
@args(): 参数: 含标注的方法。 匹配所有参数类含该标注的方法
3. 类切点函数
within() 参数:类名匹配模式。 匹配所有类名符合上述模式的类
target() 参数:类名。 匹配该类以及其父类
@within() 参数: 标注类。 匹配所有含有有该标注的类及其父类
@target() 参数: 标注类。 匹配所有含有该标注的类
@this() 参数:类名。跟@target基本相同,区别在于引介切面时,同样织入引介产生的方法。
通配符:
和正则表达式的通配符不同:
* 匹配任意字符,但只能匹配上下文中的一个元素
.. 匹配任意字符,可以匹配上下文中多个元素,在表示类时,必须和*连用,而在表示入参时单独使用
+ 匹配指定类以及其父类
注意: 以@(@within,@target,@this)开头的切点表达式不支持通配符
在使用JDK5.0以下的jdk时,不能使用注解,这时候spring 还提供了xml的方式。
<aop:aspect>
分享到:
相关推荐
spring aspectj aspectrt.jar
NULL 博文链接:https://fei-xiang.iteye.com/blog/521637
spring通过aspectj来实现事务控制
aspectj.jar的1.9.0版本,下载后粘贴到所属的lib文件下即可
Spring 使用AspectJ 实现 AOP之前置通知小例子,实际跑过,验证可信。
NULL 博文链接:https://hbiao68.iteye.com/blog/1487107
主要对Spring AOP的相关概念和简单的静态代理、动态代理以及常见的几种AOP配置方式做总结学习。主要包括:1. AOP的常见概念 2. 静态代理 3. jdk动态代理 4. Aspectj and Aspectjweaver 5. **aop-config** 6. CGLIB ...
Spring4.3.7的AOP依赖包-AspectJ
主要介绍了Spring AspectJ AOP框架注解原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
NULL 博文链接:https://rain1109.iteye.com/blog/1838100
Spring AOP之基于AspectJ注解总结与案例 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45394409
spring-aspectj-compiletime-weaving 这是一个示例项目,说明了如何在 java 8 环境中结合 spring 使用 aspectj。 UnmanagedClass 类用于说明如何在非托管 bean 中自动装配 bean。
Spring 使用AspectJ 实现 AOP(基于xml文件、基于注解)
Spring AOP的AspectJ支持jar包; 包括: com.springsource.net.sf.cglib-2.2.0.jar com.srpingsource.org.aopalliance-1.0.0.jar com.srpingsource.org.aspectj.weaver-1.68.RELEASE.jar
spring和aspectj的aop实验,详细内容可以移步至博客:https://mp.csdn.net/postedit/97750888
下面小编就为大家分享一篇Spring Aop之AspectJ注解配置实现日志管理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Spring AOP AspectJ使用及配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
aspectj
主要介绍了详解在Spring中如何使用AspectJ来实现AOP,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
AspectJ shows its real power when combined with Spring. This new edition focuses on Spring-AspectJ integration, which is a major feature of Spring 2.5. Readers will find this edition immensely helpful...