定義一個包含增強方法的javaBean(最終增強)
阿新 • • 發佈:2017-09-18
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(最終增強)