方式一:使用单个aspect
<!-- 首先创建添加业务逻辑的切面类,若使用了注解@Component创建,则可以省略 -->
<bean id="testAop" class="com.satomi.service.TestAop"></bean>
<!-- 建一个aop配置,ref="指定哪一个切面类",id="给它一个别名"-->
<!-- aspect下有多个子标签可选择,如aop:before,aop:after等等 -->
<!-- method="指定切面类要执行的方法" pointcut="那一个类里面的那一个方法需要加上切面类方法" -->
<aop:config>
<aop:aspect id="aop" ref="testAop">
<aop:before method="testXml" pointcut="execution(public void com.satomi.dao.impl.UserDAOImpl.save(com.satomi.model.User))"/>
</aop:aspect>
</aop:config>
方式二:使用全局的pointcut
<!-- pointcut是配置全局方法,也可写在aop:aspect标签里面,但那就只能单个aop:aspect使用 -->
<!-- expression="相等于上面配置pointcut一样,那个类的那个方法需要加上逻辑" id="别名" -->
<!-- public * com.satomi.dao.*.*(..) = *代表所有,..代表任意返回值 -->
<!-- pointcut-ref="上面已经配置了pointcut,所以那里只需要写上它的id就可以" -->
<aop:config>
<aop:pointcut expression="execution(public * com.satomi.dao.*.*(..))" id="UserDAOImplPointcut"/>
<aop:aspect id="aop" ref="testAop">
<aop:before method="testXml" pointcut-ref="UserDAOImplPointcut"/>
</aop:aspect>
</aop:config>