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);
 }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章