zoukankan      html  css  js  c++  java
  • spring

    方式一:接口

      前置增强      MethodBeforeAdvice

      后置增强      AfterReturningAdvice

      异常抛出增强  ThrowsAdvice

      环绕增强      MethodInterceptor

      注意:还需要在applicationContext.xml文件中进行aop相关的配置

            <aop:config>
            <aop:pointcut expression="execution(public void *User())" id="addoptpointcut"/>
            <aop:advisor advice-ref="logbefore" pointcut-ref="addoptpointcut" />
        </aop:config>

            <aop:config>
            <aop:pointcut expression="execution(* spring_basic.UserService.*(..))" id="userServiceOptPointcut"/>
            <!--
            <aop:advisor advice-ref="exceptionAdvice" pointcut-ref="userServiceOptPointcut" />
             -->
            <aop:advisor advice-ref="logger" pointcut-ref="userServiceOptPointcut" />
        </aop:config>

    方式二:注解

      前置增强      @Before("execution(* service.*.*(..))")

      后置增强      @AfterReturning(pointcut="execution(* service.*.*(..))", returning="result")

      异常抛出增强  @AfterThrowing(pointcut="execution(* service.*.*(..))", throwing="ex")

      环绕增强      @Around("execution(* service.*.*(..))")

      注意:还需要在applicationContext.xml文件中添加如下配置

            <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    方式三:Scheme

      首先:添加普通的类,里面按要求编写方法

      public class Logger {

        public void before(JoinPoint jp){

        }
        
        public void after(JoinPoint jp, Object result){

        }
        
        public void aterThrowing(JoinPoint jp, Exception ex){

        }
        
        public Object aroundExecute(ProceedingJoinPoint pjp) throws Throwable{

        }

      }

      其次:在applicationContext.xml中配置aop-aspect相关的配置

            <aop:config>
            <aop:pointcut expression="execution(* service.*.*(..))" id="optpointcut"/>
            
            <aop:aspect ref="mylogger">
                <aop:before method="before" pointcut-ref="optpointcut" />
                <aop:after-returning method="after" returning="result" pointcut-ref="optpointcut" />
                <aop:after-throwing method="aterThrowing" throwing="ex" pointcut-ref="optpointcut" />
                <aop:around method="aroundExecute" pointcut-ref="optpointcut"/>
            </aop:aspect>
            
        </aop:config>

  • 相关阅读:
    SQL 数据库备份
    压力测试工具WAS
    petshop4.0 详解之八(PetShop表示层设计
    类库生成的dll 添加 注释
    硬盘格式化后 数据全部找回
    petshop4.0 详解之七(PetShop表示层设计)
    JS 显示动态更新时间
    petshop4.0 详解之六(PetShop表示层设计)
    在linux环境下搭建嵌入式开发平台
    收录 Uboot 详解
  • 原文地址:https://www.cnblogs.com/ws1313123/p/6424773.html
Copyright © 2011-2022 走看看