spring中AOP中配置切面和切入点(15)
来源:互联网 发布:程序员自己创业 编辑:程序博客网 时间:2024/06/04 01:01
2016/1/18 10:46:21
1.配置
Spring所有的切面和通知器都必须放在一个内(可以配置包含多个元素),每一个可以包含pointcut,advisor和aspect元素
(它们必须按照这个顺序进行相应的声明)
2.aspect配置
<bean id="zjxAspect" class="com.zjx.aspect.ZjxAspect"></bean><bean id="zjxAspectBiz" class="com.zjx.aspect.ZjxAspectBiz"></bean><aop:config> <!-- 这个声明了一个切面类 --> <aop:aspect id="zjxAspectAOP" ref="zjxAspect"></aop:aspect></aop:config>
3.pointcut配置
- execution(public**(..)) 切入点为执行所有public方法时
- execution(set(..))切入点为执行所有set方法开始的方法时
- execution(com.xyz.service.AccountService.(..))切入点为执行AccountService类中的所有方法时
- execution(*com.xyz.service..(..)) 切入点为执行com.xyz.service包下的所有方法时
- execution(*com.xyz.service…(..)) 切入点为执行com.xyz.service包及其子包下的所有方法时
以下只有Spring中才能用,还有很多配置,可以查阅spring的官方文档
- within(com.xyz.service.*)
- within(com.xyz.service..*)within用于匹配制定类型内的方法执行
- this(com.xyz.service.AccountService) this用于匹配当前AOP代理对象类型的执行方法
- taget用于匹配当前目标对象类型的执行方法
配置
<bean id="zjxAspect" class="com.zjx.aspect.ZjxAspect"></bean><bean id="zjxAspectBiz" class="com.zjx.aspect.ZjxAspectBiz"></bean><aop:config> <aop:aspect id="zjxAspectAOP" ref="zjxAspect"> <aop:pointcut expression="excution(com.zjx.aspect.*Biz*(..))" id="zjxPointcut"/> </aop:aspect></aop:config>
4.通知的配置
例如,在切入点之前织入before方法
<bean id="zjxAspect" class="com.zjx.aspect.ZjxAspect"></bean><bean id="zjxAspectBiz" class="com.zjx.aspect.ZjxAspectBiz"></bean><aop:config> <aop:aspect id="zjxAspectAOP" ref="zjxAspect"> <aop:pointcut expression="excution(com.zjx.aspect.*Biz*(..))" id="zjxPointcut"/> <aop:before method="before" pointcut-ref="zjxPointcut"/> </aop:aspect></aop:config>
其余的通知可以参考该配置
5.Introduction
- 简介允许一个切面声明一个实现指定接口的通知对象,并且提供了一个接口实现类来代表这些对象
- 由中的元素声明该元素用于声明所匹配的类型拥有一个新的parent
6.advisor
- advisor就像一个小的自包含的方面,只有一个advice
- 切面自身通过一个bean表示,并且必须实现某个advice接口,同时,advice也可以很好的利用AspectJ的切入点表达式
- Spring通过配置文件中元素支持advisor实际使用中,大多数情况下他会和transactional advice配合使用
- 为了定义一个advisor的优先级以便让advice可以有序,可以使用order属性来定义advisor顺序
0 0
- spring中AOP中配置切面和切入点(15)
- Spring中基于aop命名空间的AOP 二(声明一个切面、切入点和通知)
- Spring中创建切面 ---- 创建切入点
- spring Aop中切入点和连接点什么关系?
- Spring AOP切面实现:定义切入点语法和切入点指示符
- Spring Aop编程中切入点表达式
- Spring之切入点和切面的配置解释
- Spring--AOP--基本配置(切面Aspect,切入点Pointcut,通知Advice)
- Spring 在XML中声明切面/AOP
- spring aop 中切面表达式规则
- Spring中AOP切面的定义
- spring中切入点表达式
- spring-aop配置多切面
- spring中aop配置
- spring中aop配置
- Spring Aop配置时的切入点表达式
- Spring Aop配置时的切入点表达式
- Spring Aop配置时的切入点表达式
- JVM分析工具链(三) - jstat和hprof
- spring中基于java的容器注解(12)
- spring中基于java的容器注解,对JSR的支持(13)
- 装饰设计模式
- spring中AOP基本概念(14)
- spring中AOP中配置切面和切入点(15)
- spring中AspectJ(16)
- Ubuntu 14.04 搭建 Android 开发环境
- 移动端Web开发环境搭建
- 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念
- hnoi2013游走 (高斯消元)
- CSS实现背景渐变(gradient)多兼容
- MotionEvent的getX()与getRawX()区别
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程