怎么使用spring aop

细说Spring——AOP详解(使用CGLIB实现AOP) 一、动态代理实现AOP的缺陷 在上一篇文章细说Spring——AOP详解(动态代理实现AOP)中讲解了如何使用动态代理实现AOP,虽然Java动态代理为我们提供了非常灵活的代理机制,但Java动态代理是基于接口的,如果目标对象没有实现接口我们该如何代理呢?这时候我们就需要使用CGLIB来实现AOP了。 二、CGLIB实现代理的原理 我们先创建一个目标对象 package demo1; ... 阅读详情

1. 什么是aop

它是面向切面编程,软件系统分为:核心关注点和横切关注点。核心关注点为:我们业务处理的主要流程,而与业务关系不大的我们称之为横切关注点,比如:权限校验,事务,日志,aop主要是分离核心关注点和横切关注点。

2.aop核心概念

1.切面(aspect):类是对物体特征的抽象,切面就是对横切关注点的抽象
2、横切关注点:对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点。
3、连接点(joinpoint):被拦截到的点,因为 Spring 只支持方法类型的连接点,所以在 Spring
中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器。
4、切入点(pointcut):对连接点进行拦截的定义
5、通知(advice):所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、
异常、最终、环绕通知五类。
6、目标对象:代理的目标对象
7、织入(weave):将切面应用到目标对象并导致代理对象创建的过程
8、引入(introduction):在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法
或字段。

2.2通知类型:

Before —— 在方法被调用之前调用通知;
After —— 在方法完成之后调用通知,无论方法执行是否成功;
After-returning —— 在方法成功执行之后调用通知;
After-throwing —— 在方法抛出异常后调用通知;
Around —— 通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为;

3.实现aop


   @Aspect
   @Component
   public class AspectDemo {
   
   		//表示要在哪里方法里使用aop切面增强
   		@pointcut("execution(public * com.pb.controller.*.*(..))")    
   		public void point(){
   			System.out.println("我是切入点");
   		}

   		//前置增强
   		@Before(value="point()")   //使用point()这个增强点
   		public void before(){
   			System.out.println("我是前置增强");
   			System.out.println("我是前置增强");
   		} 
   	
   		//后置增强
   		@After(value="point()")   //使用point()这个增强点
   		public void after(){
   			System.out.println("我是后置增强");
   			log();
   		} 

   		//环绕增强
   		@Around (value="point()")   //使用point()这个增强点
   		public void around(ProceedingJoinPoint joinPoint){
   			System.out.println("我是环绕前---增强");
   			joinPoint.proceed();
   			System.out.println("我是环绕后---增强");
   		} 

   		public void log(){
   		 	System.out.println("我要打日志");
   		}

   }

这样就不需要在特定的地方写我们做的的横切关注点代码了,因为这个切面已经帮我们写好了。

Spring Boot 如何使用 Spring AOP 在 Spring Boot 使用 Spring AOP 时,我们需要引入一个,就可以进行切面编程。@Aspect@Pointcut@Before@Around@After在声明切入点的时候,我们可以使用切入点表达式声明切入点。此外,如果有多个切面,可以在切面类上使用注解@Order声明优先级,值越小优先级越高,越先执行。 阅读详情

相关推荐

【Spring笔记06】Spring框架之AOP的介绍及使用

这篇文章,主要介绍一下AOP相关的概念,以及如何在Spring框架中使用AOP进行开发。 目录 一、AOP面向切面编程 1.1、什么是AOP

✅ Java 开发工程师 821

Spring(AOP)的使用方法

完成日志记录功能,当用户进行数据库增、删、改的时候记录操作日志。}}

m0_74795259的博客 5438

CKAD-CN 考试知识点分享(2) CronJob

成功创建 CronJobppi,每 5 分钟执行一次计算任务;配置了和;设置,超时自动终止;确保 Pod 不重启;手动创建ppi-testJob 验证功能正常;所有任务要求均已满足。

轻的博客 333

Spring-Aop的使用

Spring-Aop的使用

软泥人的博客 1874

[苹果开发者账号]03 申请APPID、苹果开发者账号 常见问题整理

目录:问题持续更新问题一:提示:抱歉,您暂时不能注册问题二:Apple Developer Support提示:联系我们以继续流程 问题一:提示:抱歉,您暂时不能注册 申请苹果开发者账号,应该先注册AppleID,由于很多都是申请的公司使用的苹果开发者账号。一般操作申请动作的人,可能是新手操作,也可能图方便,有些信息会随便填写。 有些人会把姓名填写为,公司的产品、简称、缩写等等。这是不对的。 还有出生日期也会随便乱填。生日如果填写的不对,会被苹果限制使用一些功能的(苹果给的提示不是太明确)。 当生日填写的

专注于技术开发、项目管理 1万+

VINS-Mono 时延估计论文翻译

Online Temporal Calibration for Monocular Visual-Inertial Systems 摘要 精确的状态估计是机器人导航、自主驾驶、虚拟现实和增强现实等各种智能应用的基础模块。视觉惯性融合是近年来流行的六自由度状态估计技术。记录不同传感器测量值的时刻对系统的鲁棒性和准确性至关重要。在实践中,每个传感器的时间戳通常会受到触发和传输延迟的影响,从而导致不同传感器之间的时间偏差(时间偏移)。这种时间偏移严重影响传感器融合的性能。为此,我们提出了一种标定视觉和

weixin_39061796的博客 1255

使用Spring实现Aop三种方法

** 方式一 :使用spring的AP接口 方式二 : 自定义来实现AOP (主要是切面定义) 方式三 :使用注解实现AOP **使用AOP 植入 ,需要导入依赖包aspectj 方式一 :使用spring的AP接口 定义uservice接口 接口实现类userviceImpl 创建要做代理 为uservice 添加日志 的log类 创建afterlog 类 ben.xml 创建测试: div 自定义一个类 bean.xml 测试结果: 分析: 创建annotation类 bean.xml 测试

vengu733的博客 3535

快速谱峭度算法解析

最近一直在研究振动信号的最优解调带宽寻找方法,而快速谱峭度算法是最常见的一种,因此本篇文章准备对该算法做个深入解析,也相当于自己的学习记录了。本篇文章对快速谱峭度算法做了一个较为详细的介绍,实际上就是通过多组滤波器将信号分解到不同的频段,再计算每个频段的峭度,从而找到值最大的频段,进一步地我们也可以选取其他指标作为频段的选择,以便更好地找到振动信号中的故障信息。

qq1234534215的博客 2745

【学习笔记】SpringAOP的用法全解

spring的aop基础用法

Xcong_Zhu的博客 684

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁"小姐姐"的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

从Protocol到硬件控制:揭秘高通UEFI中ABL与XBL的协作机制

本文深入解析了高通UEFI架构中ABL与XBL的协作机制,重点探讨了Protocol通信在硬件控制中的关键作用。通过对比传统GPIO控制方式,揭示了Protocol架构在安全性、可维护性和灵活性方面的优势,并提供了关机充电场景的实战案例分析及调试技巧。

weixin_29185199的博客 431

Spring AOP 使用详解

Spring AOP 使用详解。核心概念+实现示例+注意事项

lzz的博客 1833

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1857

如何在 Spring 中使用 AOP?

加依赖加注解启用写切面类@Aspect@Component在切面里定义切点@Pointcut) 和通知@Before@Around等)。通过这种方式,我们的业务代码()和横切关注点(日志逻辑)实现了完美的解耦,使得代码更加清晰、可维护性更高。

专注于技术分享 1267

ESP32-IDF开发实例-外部Flash与FatFs文件系统数据存取

FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I/O层完全分开。因此,它独立于平台。它可以并入资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。ESP32-IDF对FatFs提供了良好的支持。

视觉与物联智能 2919

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Spring AOP使用教程

AOP 简介 AOP 思想是Spring的核心设计思想之一,通过基于切面的编程设计理念可以将业务逻辑与系统逻辑有效的分隔开来。使得系统的架构更加清晰,模块之间的界限也变的更加明确。 AOP 全称为 Aspect Oriented Programming,即面向切面的编程。这种编程方式可以为某些方法提供行为增强,亦或者是行为监控能力。通过对切片统一编程可以在相比于不使用AOP的情况下减少了重复代码的开发量,同时使得代码功能更加明确。 从整体上来看 AOP的加持使得相对应的方法执行时看起来就好像奥利奥饼干一样,

永远相信美好的事情即将发生 5648

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring框架的AOP使用方法

本文介绍了AOP(面向切面编程)的概念、原理及实现方式。AOP通过动态代理在不修改源代码的情况下增强业务逻辑,降低耦合度。底层实现分为JDK动态代理(针对有接口的情况)和CGLIB动态代理(无接口情况)。文章详细讲解了AOP术语(连接点、切入点、通知、切面)和五种通知类型(@Before、@After、@AfterReturning、@Around、@AfterThrowing)。重点阐述了基于AspectJ的两种AOP实现方式:注解方式(推荐)和XML配置方式,包括切入点表达式语法和增强类优先级设置。

MyNAMS的博客 1015

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Spring中的AOP的使用

Spring中的AOP的使用 1.1 什么是AOP AOP:全称是Aspect Oriented Programming即:面向切面编程。 简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。 1.2 AOP的作用及优势 作用: 在程序运行期间,不修改源码对已有方法进行增强。 优势: 减少重复代码 提高开发效率 维护方便。 1.3 AOP相关术语 Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在spring中,这

weixin_40055163的博客 1253

【Spring框架】Spring的AOP使用

Spring的AOP使用 我们在Spring框架中实现AOP功能主要是通过AspectJ实现的,AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。需要注意的是,AspectJ并不是Spring框架的一部分,它只是用于和Spring结合在一起共同完成有关AOP的操作而已。 AOP结合AspectJ的使用主要有两种方式: 基于XML配置的方式实现; 基于注解的方式实现; 基于XML配置的方式实现 1

Sampson_S的博客 5044

Spring中AOP的作用 为什么要使用AOP

假如没有aop,在做日志处理的时候,我们会在每个方法中添加日志处理,比如 但大多数的日子处理代码是相同的,为了实现代码复用,我们可能把日志处理抽离成一个新的方法。但是这样我们仍然必须手动插入这些方法。 但这样两个方法就是强耦合的,假如此时我们不需要这个功能了,或者想换成其他功能,那么就必须一个个修改。 通过动态代理,可以在指定位置执行对应流程。这样就可以将一些横向的功能抽离出来形成一...

猫的薛定谔 4758

Spring Aop的使用

1. 几个术语 Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的连接点。也就是能够被增强的方法 Pointcut(切入点): 所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义,也就是真正被增加的方法 Advice(通知/增强): 所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知...

Javaer`s blog 268

Spring入门(十):Spring AOP使用讲解

AOP是Aspect Oriented Programming的缩写,意思是:面向切面编程,它是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。可以认为AOP是对OOP(Object Oriented Programming 面向对象编程)的补充,主要使用在日志记录,性能统计,安全控制等场景,使用AOP可以使得业务逻辑各部分之间的耦合度降低,只专注于各自的业务逻辑实现,从而提高程序的可读性及维护性。

cxytony的博客 1063

Spring框架AOP基本使用指南

切面是一个普通的Java类,使用@Aspect注解标记。切面类中包含多个通知方法,每个通知方法使用@Before@After@Around等注解标记。@Aspect@Component@Service通过本文的介绍,我们了解了Spring框架中AOP的基本使用,包括如何定义切面、通知、切点以及如何在Spring应用中配置AOP。AOP是一个非常强大的工具,可以帮助我们将横切关注点从业务逻辑中分离出来,从而提高代码的模块化和可维护性。

2403_87122583的博客 754

Spring AOP使用

AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(两外两个:IOC-控制反转、DI-依赖注入)。那么AOP为何那么重要呢?在我们的程序中,经常存在一些系统性的需求,比如权限校验、日志记录、统计等,这些代码会散落穿插在各个业务逻辑中,非常冗余且不利于维护。例如下面这个示意图:有多少业务操作,就要写多少重复的校验和日志记录代码,这显然是无法接受的。

Waiting的博客 168

Spring AOP配置 AOP的注解及使用

AOP的注解及使用 aop使用注解功能 先要在applicationContext.xml配置文件中 扫描总包目录 <context:component-scan base-package="com.itheima"/> 开启aop的注解驱动 <aop:aspectj-autoproxy/> 这是必须要有的,没有就不能使用注解 注解开发AOP制作步骤 在XML格式基础上 导入坐标(伴随spring-context坐标导入已经依赖导入完成) 开启AOP注解支持 配

酆都城博客 1806

spring AOP切面的使用

AOP:【动态代理】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 使用 导入aop模块;Spring AOP:(spring-aspects) 定义一个业务逻辑类,在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx) 定义一个日志切面类:切面类里面的方法需要动态感知目标方法运行到哪里然后执行; 前置通知 @Before:在目标方法运行之前运行; 后置通知 @After:在目标方法运行结束之后运行(无论方法正常结束还是异常结束);

qq_33732195的博客 739
上一篇: springboot mybatis 开启二级缓存
下一篇: js中定义变量加var与不加var的区别?
java123_PB
博客等级 码龄10年 8粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值