标签:
连接点(Joinpoint):(定位到某个方法上+方位为某个方法的前、后..)程序执行的某个特点位置,如类开始初始化前、初始化后、某个方法调用前、调用后、方法抛出异常后,一个类或一段程序代码拥有一些具有边界性质的特定点,Spring只支持方法的连接点。

切点(Pointcut)(定位到哪个方法上)如果希望定位到具体的连接点上,还需要提供方位信息
增强(Advice)(方位为某个方法的前、后..)
目标对象(Target):增强逻辑的织入目标类
引介(Introduction):是一种特殊的增强,为类添加一些属性和方法,如为一个未实现某接口的业务类动态地添加接口的实现逻辑
织入(Waving):将增强添加对目标类具体连接点上的过程,将目标类、增强或引介通过AOP编织在一起。AOP有三种织入方式:
Spring采用动态代理织入
代理(Proxy):

切面(Aspect):(定位到某个方法上+方位为某个方法的前、后..的代码)

AOP的工作重心在于如何将增强应用于目标对象的连接点上,这里包括两个工作:
Spring AOP通过Pointcut(切点)指定在哪些类的哪些方法上织入横切逻辑,通过Advice(增强)描述横切逻辑和方法的具体织入点(方法前、方法后、方法的两端等)。此外,Spring通过Advisor(切面)将Pointcut和Advice两者组装起来,有了Advisor的信息,Spring就可以利用动态代理技术采用统一的方式为目标Bean创建织入切面的代理对象了。
增强类型:




切点类型:


切面类型:


<!-- 配置事务通知属性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 定义事务传播属性 -->
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" />
...
</tx:attributes>
</tx:advice>
<!-- 配置事务切面 -->
<aop:config>
<aop:pointcut id="serviceOperation"
expression="execution(* ..*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>
标签:
原文地址:http://www.cnblogs.com/QinH/p/4415594.html