码迷,mamicode.com
首页 > 编程语言 > 详细

spring - aop 使用方式总结

时间:2017-02-21 19:13:11      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:void   ssi   service   result   iso   use   users   scheme   总结   

方式一:接口

  前置增强      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>

spring - aop 使用方式总结

标签:void   ssi   service   result   iso   use   users   scheme   总结   

原文地址:http://www.cnblogs.com/ws1313123/p/6424773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!