spring提供了基于XML的AOP支持,采用“aop”命名空间。在spring配置中,所有的aspect和advisor元素都必须放在<aop:config>元素中,一个<aop:config>元素可以包含pointcut、advisor、aspect元素。
1、声明aspect
一个aspect是spring上下文中定义的一个普通Java对象,状态和行为被捕获到对象的字段和方法中,pointcut和advisor被捕获到XML中。如下:
<bean id="talk" class="com.xlws.spring.aop.Talk" />
<aop:config>
<aop:aspect id="aspect1" ref="talk">
...
</aop:aspect>
</aop:config>
2、声明pointcut
pointcut可以在<aop:config>元素中声明,以便pointcut定义可以在几个aspect和advisor间共享。如下:
<aop:config>
<aop:pointcut id="serv" expression="execution(* com.xlws.spring.aop.*.*(..))"/>
</aop:config>
3、声明advisor
advisor与@AspectJ风格支持的五种类型的advisor相同,语义也相同。如下:
<aop:config>
<aop:aspect id="exam" ref="people">
<aop:before pointcut-ref="oper" method="check"/>
</aop:aspect>
</aop:config>
综合示例:
--参考文献《Srping5开发大全》