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>

  • 相关阅读:
    04-struts2框架中获取servlet api及Result结果类型
    03-Action类的创建方式及访问
    一位资深程序员大牛给予Java初学者的学习建议(转)
    C++中数组指针
    Ubuntu 开机出现 grub rescue> 终端模式修复方法
    windows和linux双系统下扩容方法
    C 字符串处理
    C++类中变量定义初始化总结
    python创建xml
    OpenBlas compile centOS6.7 ./kernel/x86_64/dgemm_kernel_4x4_haswell.S:2548: Error: no such instruction: `vpermpd $
  • 原文地址:https://www.cnblogs.com/ws1313123/p/6424773.html
Copyright © 2011-2022 走看看