1.拦截器:
1.1. implements MethodInterceptor,方法拦截器. 可以在指定的方法执行前后执行自己的代码.
1.2. implements AfterReturningAdvice,方法后缀处理器,可以在指定的方法执行后执行自己的代码.
配置如下:(1.1和1.2都一样)
<bean id="methodCacheInterceptor" class="com.bbbb.platform.interceptor.MethodCacheInterceptor"></bean>
<!-- 配置查找cache拦截器切入点-->
<bean id="methodCachePointCut" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="methodCacheInterceptor"/>
</property>
<property name="patterns">
<list>
<value>.*_cache.*</value>
</list>
</property>
</bean>
2.纯aop: (纯类,只需要有提供载体的处理链接点即可)
配置如同事务,如下:
<aop:config>
<!-- 配置事务切面 -->
<aop:pointcut id="serviceOperation"
expression="execution(* com.xxxxx.*.service..*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
<!-- 配置日志切入点 -->
<aop:aspect id="operateLogManager" ref="operateLogAdvice">
<aop:around method="record" pointcut="(execution(* com.xxxxx.*.service..*Service.save*(..)) or
execution(* com.xxxxx.*.service..*Service.insert*(..)) or
execution(* com.xxxxx.*.service..*Service.add*(..)) or
execution(* com.xxxxx.*.service..*Service.update*(..)) or
execution(* com.xxxxx.*.service..*Service.modif*(..)) or
execution(* com.xxxxx.*.service..*Service.change*(..)) or
execution(* com.xxxxx.*.service..*Service.remove*(..)) or
execution(* com.xxxxx.*.service..*Service.del*(..)) or
execution(* com.xxxxx.*.service..*Service.edit*(..)))
and !bean(operateLogService)
"/><!-- .save*(..) 表示以save开头的所有方法,..Service,第一个.表示目录分隔,第二个点表示类 -->
</aop:aspect>
</aop:config>