spring aop定义spring切面,以下给出例子:
1、定义spring切面:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<!-- 连接端连接历史通知 -->
<bean id="connectHistoryAdvice" class="com.rf.etp.thread.ConnectHistoryService">
</bean>
<bean id="pointcutService" class="com.rf.etp.thread.PointcutService"></bean>
<aop:config>
<aop:aspect id="connectHistoryAspect" ref="connectHistoryAdvice">
<aop:pointcut expression="execution(* com.rf.etp.thread.PointcutService.pointcutMethod(..)) and args(argvalue)" id="addBrokerService"/>
<aop:after method="afterAddBroker" pointcut-ref="addBrokerService" />
</aop:aspect>
</aop:config>
</beans>
切点是pointcutService,通知是connectHstoryAdvice,切面是connectHstoryAspect
切面:当执行pointcutMethod()后执行通知的方法,参数为argvalue
2、切点bean
public class PointcutService{
public void pointcutMethod(String argvalue){
System.out.println("step into method pointcutMethod in PointcutService!!");
}
}
3、通知bean
public class ConnectHistoryService{
public void afterAddBroker(String argvalue){
System.out.println("step into advisory method! and args:" + argvalue);
}
}