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

【spring】spring aop的更多相关文章

  1. 【转】spring - ioc和aop

    [转]spring - ioc和aop 1.程序中为什么会用到spring的ioc和aop 2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题 3.原理 关于1: a:我们平常使用对 ...

  2. 【转】Spring中事务与aop的先后顺序问题

    [原文链接] http://my.oschina.net/HuifengWang/blog/304188 [正文] Spring中的事务是通过aop来实现的,当我们自己写aop拦截的时候,会遇到跟sp ...

  3. 【转】Spring总结以及在面试中的一些问题

    [转]Spring总结以及在面试中的一些问题. 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建 ...

  4. 【转】Spring学习---Spring IoC容器的核心原理

    [原文] Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国. IoC和DI的基本概念 IoC(控制反转,英文含义:Inverse of Control)是Spr ...

  5. 【原】Spring整合Redis(第二篇)—SDR环境搭建具体步骤

    [环境参数] Spring版本:4.2.6.RELEASESpring-Data-Redis版本:1.7.2.RELEASE Redis版本:redis-2.4.5-win32-win64 [简要说明 ...

  6. 【目录】Spring 源码学习

    [目录]Spring 源码学习 jwfy 关注 2018.01.31 19:57* 字数 896 阅读 152评论 0喜欢 9 用来记录自己学习spring源码的一些心得和体会以及相关功能的实现原理, ...

  7. 【Spring】Spring随笔索引

    Spring随笔索引 [Spring]Spring bean的实例化 [Spring]手写Spring MVC [Spring]Spring Data JPA

  8. 【进阶】Spring中的注解与反射

    [进阶]Spring中的注解与反射 目录 [进阶]Spring中的注解与反射 前言 一.内置(常用)注解 1.1@Overrode 1.2@RequestMapping 1.3@RequestBody ...

  9. 【spring-boot】spring aop 面向切面编程初接触--切点表达式

    众所周知,spring最核心的两个功能是aop和ioc,即面向切面,控制反转.这里我们探讨一下如何使用spring aop. 1.何为aop aop全称Aspect Oriented Programm ...

  10. 【spring-boot】spring aop 面向切面编程初接触

    众所周知,spring最核心的两个功能是aop和ioc,即面向切面,控制反转.这里我们探讨一下如何使用spring aop. 1.何为aop aop全称Aspect Oriented Programm ...

随机推荐

  1. 推荐一款适合Dynamics 365/Dynamics CRM 2016 使用的弹出窗插件AlertJs

    Github地址: https://github.com/PaulNieuwelaar/alertjs 目前有两个版本,3.0版本(30天免费试用)以及2.1版本(完全免费) ------------ ...

  2. Python上下文管理器的使用

    上下文管理器可以控制代码块执行前的准备动作,以及执行后的清理动作. 创建一个上下文管理器类的步骤:(1)一个__init__方法,来完成初始化(可选)(2)一个__enter__方法,来完成所有建立工 ...

  3. Tomcat启动分析(二)-自己编译Tomcat

    为了方便分析Tomcat源码,利用大家习惯的方式来进行Debug调试,那么如何将Tomcat源码导入到Eclipse呢,这就是本文的重点 1 准备 1.1 获取Tomcat源码 获取tomcat源码有 ...

  4. [转]Eclipse插件开发之基础篇(3) 插件的测试与调试

    原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JUnit对插件进行测试 E ...

  5. PHP代码篇(五)--如何将图片文件上传到另外一台服务上

    说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...

  6. BayaiM__Oracle ASM操作管理

    BayaiM__Oracle ASM操作管理   BayaiM__Oracle ASM操作管理                                                      ...

  7. [日常] 解决docker拉取镜像速度慢的问题

    将docker修改为国内镜像源 在/etc/docker/daemon.json文件中添加下面参数 此处使用的是中国科技大学的docker镜像源 {    "registry-mirrors ...

  8. 1. 配置Java开发环境

    一.JDK & JRE & JVM 1. JDK是什么? JDK的全称是Java SE Development Kit,即Java标准版开发包,是Oracle提供的一套用于开发Java ...

  9. 线上可用django和gunicorn的dockerfile内容

    一,基础镜像 [xxx.com.cn/3rd_part/python.3.6.8:alpine3.9-mysqlclient1.4.2] FROM python:3.6.8-alpine3.7 MAI ...

  10. 6.GC垃圾回收算法和垃圾收集器的关系

    JAVAGC垃圾回收机制和常见垃圾回收算法 推荐博客:JVM垃圾回收机制和常见垃圾回收算法 JVM的内存结构.垃圾回收算法