1. 程式人生 > >Spring aop標籤的使用

Spring aop標籤的使用

筆者花了一點時間進行了關於spring aop標籤的使用,希望能幫助初學spring框架的童鞋們。

只列舉了最重要的部分。供參考

1.定義切面類 package com.lm.aop.xml; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; public class XmlHandler {     //前置通知     public void before(JoinPoint point){         System.out.println(point.getSignature().getName()+"執行之前,before....");
    }     //後置通知     public void after(JoinPoint point){         System.out.println(point.getSignature().getName()+"執行之前,after....");     }     //方法返回後通知     public void returnafter(JoinPoint point){         System.out.println(point.getSignature().getName()+"正常執行之後,returnafter....");     }     //環繞通知     public Object around(ProceedingJoinPoint pjp) throws Throwable{
        System.out.println(pjp.getSignature().getName()+"執行之前,around....");         Object proceed = pjp.proceed(); //執行目標物件的方法         System.out.println(pjp.getSignature().getName()+"執行之後,around....");         return proceed;     }     //異常通知     public void throwingException(JoinPoint point,Exception ex){
        System.out.println(point.getSignature().getName()+"發生異常"+ex.getMessage());     } } 2.Spring Xml配置(Aop標籤) <?xml version="1.0" encoding="UTF-8"?> <!--配置account物件 --> <bean name="account" class="com.lm.aop.bean.Account"> <property name="id" value="1"></property> <property name="name" value="LeeSin"></property> <property name="balance" value="5000"></property> </bean> <!--配置dao層 --> <bean name="dao" class="com.lm.aop.dao.AccountDaoImpl"></bean> <!-- 配置service --> <bean name="service" class="com.lm.aop.service.AccountServiceImpl"> <property name="dao" ref="dao"></property> <property name="fromAccount" ref="account"></property> </bean> <!--配置切面類物件 --> <bean name="handler" class="com.lm.aop.xml.XmlHandler"></bean> <!-- aopConfig配置代理物件 --> <aop:config>
      <!-- execution(修飾符(可以不寫) 引數型別(必須寫可以用*代替) 包名+類名+方法名(可以用*代替(..)   ..的意思是代表引數可有可無。   )) -->
<aop:pointcut expression="execution(* com.briup.aop.service.*.*(..))" id="myPointCut" /> <aop:aspect id="aspect" ref="handler"> <aop:before method="before" pointcut-ref="myPointCut"/> <aop:after method="after" pointcut-ref="myPointCut"/> <aop:around method="around" pointcut-ref="myPointCut"/> </aop:aspect> </aop:config> </beans>