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