aop代理類的配置
<!-- 注入目標類 -->
<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);
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.