AOP 基于配置Xml文件的管理方式

AOP 基于配置Xml文件的管理方式

 在Spring的配置文件中,所有的切面、切入点和增强处理都必须定义在<aop:config../>元素内部。<beans../>元素下可以包含多个<aop:config../>元素。
一个<aop:config../>可以包含多个pointcut、advisor和aspect元素,且这3个元素必须按照此顺序类定义。
注意:当我们使用<aop:config../>方式进行配置时,可能与Spring的自动代理方式冲突,例如我们使用BeanNameAutoProxyCreator或类似的方式显示启用了自动代理,则它可能导致问题(例如有些增请处理没有被织入)因此要么全部使用自动代理的方式,要么全部使用<aop:config../>配置方式。不要不两者混合使用。
————配置切面:
    定义切面使用<aop:aspect../>元素,使用该元素来定义切面时,其实质是将一个已有的Spring Bean转换成切面Bean。
    因为切面Bean可以当成一个普通的SpringBean来配置,所以可以为该切面Bean配置依赖注入。
配置<aop:aspect../>元素时可以指定如下3个属性:
id:定义该切面的标识名;
ref:指定以指定ref所引用的的普通Bean作为切面Bean。
order:指定该切面Bean的优先等级,数字越小,等级越大。

————配置增强处理:
<aop:before.../>:Before增强处理
<aop:after../>:After增强处理
<aop:after-returning.../>:afterReturning增强处理
<aop:after-throwing../>:afterThrowing增强处理
<aop:around.../>:Around增强处理
上面的元素不能配置子元素,但可以配置如下属性:
pointcut:该属性指定一个切入点表达式,Spring将在匹配该表达式的连接点时织入增强处理。
pointcut-ref:该属性指定一个已经存在的切入点的 名称,通常pointcut与pointcut-ref只需要使用其中的一个。
method:该属性指定一个方法名,指定切面Bean的该方法将作为增强处理。
throwing:该属性只对<aop:after-throwing../>起作用,用于指定一个形参名,afterThrowing增强处理方法可以通过该形参访问目标方法所抛出的异常。
returning:该属性只对<aop:after-returning.../>起作用,用于指定一个形参名,afterReturning增强处理方法可以通过该形参访问目标方法的返回值。
    当定义切入点表达式时,XML文件配置方式和@AspectJ Annotation方式支持完全相同的切入点指示符,一样支持execution、within、args、this、target和bean等切入点指示符。

你可能感兴趣的:(AOP 基于配置Xml文件的管理方式)