标签:
连接点(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