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>

  • 相关阅读:
    配置Kickstart无人值守安装centos5.9 天高地厚
    数据库是什么,它是做什么用的? 天高地厚
    Mysql主从复制 天高地厚
    android开发中eclipse里xml的自动提示
    "error: device not found" and "error:device offline"
    gentoo中emerge失效:File "/usr/bin/emerge", line 43
    android:修改preference中view属性
    gerrit上利用sshkeygen公钥
    git 基本命令介绍
    prebuilt/linuxx86/toolchain/armeabi4.4.3/bin/armeabigcc: /lib/libc.so.6: version `GLIBC_2.11' not found:解决办法
  • 原文地址:https://www.cnblogs.com/ws1313123/p/6424773.html
Copyright © 2011-2022 走看看