zoukankan      html  css  js  c++  java
  • 【spring】spring aop

    Aspect-Oriented Programming (AOP)

    一、官方介绍

    通过提供另一种考虑程序结构的方式,面向方面编程(AOP)补充了面向对象编程(OOP)。OOP中模块化的关键单元是类,而在AOP中模块化的单元是方面。方面支持关注点的模块化,比如跨越多个类型和对象的事务管理。(在AOP文献中,这样的关注点通常被称为横切关注点。)

    二、笔记

    #### EnableAspectJAutoProxy 默认开启

    #### CGLIB来实现AOP的时候,需要配置spring.aop.proxy-target-class=true,不然默认使用的是标准Java的实现

    #### @Before:在执行连接点方法之前运行。我们可以使用@Before注释将建议类型标记为Before。

    #### @After:在连接点方法完成执行之后(无论是正常还是引发异常)执行的建议。我们可以使用@After注释创建事后通知。

    #### @AfterReturning:有时我们希望建议方法仅在联接点方法正常执行时才执行。我们可以使用@AfterReturning批注将方法标记为返回建议之后。

    #### @AfterThrowing:仅在连接点方法抛出异常时才执行此建议,我们可以使用它以声明方式回滚事务。对于此类建议,我们使用@AfterThrowing批注。

    #### @Around:这是最重要和最有力的建议。该建议围绕着连接点方法,我们还可以选择是否执行连接点方法。我们可以编写在执行连接点方法之前和之后执行的建议代码。周围建议的责任是调用连接点方法并在该方法返回某些值时返回值。我们使用@Around批注创建围绕建议的方法


    #### 在@Before中优先执行@Order(1)的内容,再执行@Order(2)的内容
    #### 在@After和@AfterReturning中优先执行@Order(2)的内容,再执行@Order(1)的内容




    gitHub:https://github.com/Baker-abc/baker-learning-springboot

  • 相关阅读:
    冒泡排序
    选择排序
    1069 微博转发抽奖 (20 分)
    动态规划-石子合并
    动态规划-最长公共子序列
    动态规划-最长上升子序列
    动态规划-数字三角形
    动态规划-分组背包问题
    动态规划-多重背包问题
    动态规划-完全背包问题
  • 原文地址:https://www.cnblogs.com/kbian/p/12014605.html
Copyright © 2011-2022 走看看