zoukankan      html  css  js  c++  java
  • spring aop切面编程实现操作日志步骤

    1、在spring-mvc.xml配置文件中打开切面开关:

    <aop:aspectj-autoproxy proxy-target-class="true"/>

    注意:proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。如果proxy-target-class属值被设置为false或者这个属性被省略,那么标准的JDK 基于接口的代理将起作用。即使你未声明 proxy-target-class="true" ,但运行类没有继承接口,spring也会自动使用CGLIB代理。高版本spring自动根据运行类选择 JDK 或 CGLIB 代理。

    2、定义拦截哪些操作类型:比如增加、修改、删除

        

    3、定义拦截操作的切面实现类:

        

    说明:

    1.@aspect:表明是切面类

    2.@Pointcut(value = "execution (* com.cms.admin.web.controller.*.*(..))"):定义统一拦截的切入点,其中第一个*表示任意返回类型,第二个*表示任意类名,假如第二个*前面是两个.则表示包括包里面的子包,第三个*表示任意方法名,后面的小括号表示任意参数值

    3.//@Before("controllerAspect()"):表示拦截方法执行前的动作

    4.@Around("controllerAspect()"):表示方法执行前后的动作,注意要有返回值

       

    5.@AfterReturning(value = "controllerAspect()", returning = "rtv",argNames="rtv"):表示拦截方法执行完成之后的动作,pointcut/value:这两个属性的作用是一样的,它们都属于指定切入点对应的切入表达式。一样既可以是已有的切入点,也可直接定义切入点表达式。当指定了pointcut属性值后,value属性值将会被覆盖。returning:该属性指定一个形参名,用于表示Advice方法中可定义与此同名的形参,该形参可用于访问目标方法的返回值。除此之外,在Advice方法中定义该形参(代表目标方法的返回值)时指定的类型,会限制目标方法必须返回指定类型的值或没有返回值。注意:虽然AfterReturning增强处理可以访问到方法的返回值,但它不可以改变目标方法的返回值

      

    6.@AfterThrowing("controllerAspect() && args(ex)"):表示捕捉方法执行异常的动作,加上args(ex)  中间是AfterThrowing方法参数的名字。

       

  • 相关阅读:
    [转]常用数字处理算法的Verilog实现
    [转]Linux必学的60个命令
    [转]4位超前进位加法器代码及原理
    [转]FPGA & Verilog开发经验若干
    [转]Verilog中parameter和define的区别
    [转]VIM标记 mark 详解
    关于获取服务的需求列表
    Office 2007 探索之路 Outlook
    利用反射建立单一调用的WebService
    寻宝记
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/7650898.html
Copyright © 2011-2022 走看看