• Spring学习总结之面向切面(AOP)


    1. AOP术语

    通知(advice):定义切面是什么以及什么时候使用

    连接点(join point):应用在执行过程中能够插入切面的点

    切点(pointcut):切点的定义会匹配通知所要织入的一个或多个连接点

    切面(aspect):通知和切点的结合

    引入(introduction):允许我们向现有的类添加新方法或属性

    织入(weaving):把切面应用到目标对象并创建新的代理对象的过程

    1. Spring使用AspectJ注解来声明通知方法

    @After:通知方法会在目标方法返回或抛出异常后调用

    @AfterReturning:通知方法会在目标方法返回后调用

    @AfterThrowing:通知方法会在目标方法抛出异常后调用

    @Around:通知方法会将目标方法封装起来

    @Before:通知方法会在目标方法调用之前执行

    注解使用在切面方法之前,比如:

    @Before(“execution(xxx)”)

    public void sayHello() {}

    此时表示,在xxx方法执行之前,执行切面方法sayHello

    1. pointcut配置如下:

    @Pointcut(“execution(* xxxx)”)

    public void xxMethod() {}

    @Before(“xxMethod()”)

    作用:不用每次都写execution,简化了代码,xxMethod只是一个空方法

    1. 使用XML文件配置
    <aop:config>
    
            <aop:aspect ref="aspectClass">
    
                <aop:pointcut id="p_name" expression="execution(xxx)" />
    
                <aop:before pointcut-ref="p_name"  method="xxMethod" />
    
            </aop:aspect>
    
    </aop:config>

             aspectClass表示切面类的bean ID,xxMethod表示用在切面上的方法(通知)

  • 相关阅读:
    PossibleOrders TopCoder
    505C Mr. Kitayuta, the Treasure Hunter
    p2257 YY的GCD
    浅谈莫比乌斯反演
    Hive基础(3)---Fetch Task(转)
    Hive基础(2)---(启动HiveServer2)Hive严格模式
    mysql 命令行参数
    Hive基础(1)---Hive是什么
    mybatis运行时错误Illegal argument exception argument type mismatch
    【TOMCAT启动异常】The BASEDIR environment variable is not defined correctly
  • 原文地址:https://www.cnblogs.com/songxh-scse/p/6692275.html
Copyright © 2020-2023  润新知