• 定义一个包含增强方法的javaBean(最终增强)


     使用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.测试结果

  • 相关阅读:
    TTL电平和CMOS电平总结
    掩码
    关于Autosar中DCM(14229UDS)模块的理解
    Diagnostic Trouble Code诊断故障码
    eclipse搭建android开发环境
    在ubuntu下安装zookeeper
    redis的windows版本下载地址及windows的客户端工具
    最简单的启动并连接一个redis的docker容器
    转:Redis介绍及常用命令大全
    redis常用命令
  • 原文地址:https://www.cnblogs.com/myhzb/p/7538450.html
Copyright © 2020-2023  润新知