<!-- 注入目标类 -->
<bean id="a" class="com.aop1.Target"></bean> //即业务主要执行的类
<!-- 注入切面1 -->
<bean id="advice1" class="com.aop1.LogAdvice1"></bean> //除业务外其他要执行的类
<!-- 注入切面2 -->
<bean id="advice2" class="com.aop1.LogAdvice2"></bean>
<!-- 代理类作用: 生成代理类,织入通知 -->
<bean id="agent" class="org.springframework.aop.framework.ProxyFactoryBean"> //代理类
<!-- 引入通知 --> //即2个切面
<property name="interceptorNames">
<list>
<value>advice1</value>
<value>advice2</value>
</list>
</property>
<!-- 目标对象 -->
<property name="targetName" >
<value>a</value> //目标类
</property>
</bean>
public class LogAdvice1 implements MethodBeforeAdvice { //切面1实现
MethodBeforeAdvice将在目标类之前执行
public void before(Method method, Object[] arg1, Object arg2)
throws Throwable {
System.out.println(method.getName() + "方法即将执行................");
}
}
public class LogAdvice2 implements AfterReturningAdvice { //切面2实现
AfterReturningAdvice将在目标类之后执行
public void afterReturning(Object returnValue, Method method, Object[] arg2,
Object arg3) throws Throwable {
System.out.println(method.getName() + "方法执行结束................");
System.out.println(method.getName() + "方法的返回值是" + returnValue);
}
}