1. 程式人生 > >定義一個包含增強方法的javaBean(最終增強)

定義一個包含增強方法的javaBean(最終增強)

htm ref 測試結果 div tar com sign -- fin

使用Schema

技術分享

1.AroundLogger類

 1 //定義一個包含增強方法的javaBean
 2 public class AroundLogger{
 3     //註解方式的環繞增強處理
 4     private static final Logger log = Logger.getLogger(AroundLogger.class);
 5     public Object aroundLogger(ProceedingJoinPoint jp){
 6         log.info("a調用"+jp.getTarget()+"的"+jp.getSignature().getName()+"方法,方法參數是:"
 7
+Arrays.toString(jp.getArgs())); 8 try { 9 Object result = jp.proceed();//調用目標方法,獲取目標方法的返回值 10 log.info("a調用"+jp.getTarget()+"的"+jp.getSignature().getName()+"方法,方法返回值是:" 11 +result); 12 return result; 13 } catch (Exception e) {
14 log.error(jp.getSignature().getName()+"方法拋出異常"+e); 15 e.printStackTrace(); 16 } catch (Throwable e) { 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } 20 return null; 21 } 22 }

2.spring配置文件

 1     <bean id="dao" class
="com.dao.impl.IUserDaoImpl"></bean> 2 <bean id="biz" class="com.biz.impl.IUserBizImpl"> 3 <property name="dao" ref="dao"></property> 4 </bean> 5 <!-- 聲明增強方法所在的類 --> 6 <bean id="thelogger" class="com.aop.AroundLogger"></bean> 7 <!-- 配置切面 --> 8 <aop:config> 9 <!-- 定義切入點 --> 10 <aop:pointcut expression="execution(* com.biz.IUserBiz.* (..))" id="pointcut"/> 11 <!-- 引入包含增強的bean --> 12 <aop:aspect ref="thelogger"> 13 <!--將aroundLogger方法定義為最終增強並引入切入點 --> 14 <aop:around method="aroundLogger" pointcut-ref="pointcut"/> 15 </aop:aspect> 16 </aop:config>

3.測試類同使用Schema配置切面

4.測試結果

技術分享

定義一個包含增強方法的javaBean(最終增強)