Spring Boot 进阶-Spring Boot如何整合AOP实现自定义注解

在这里插入图片描述
  通过之前的文章,我们知道在Spring Boot中使用了大量的注解,而对于注解大家应该不陌生。

  Java注解是在JDK1.5的时候引入的新特性,它提供了一种类似注释的机制,用来将任何的信息或者元数据与类、方法,或者是成员变量来进行关联。在注解中附带了一些信息,这些信息可以在编译、运行的时候对代码起到帮助说明以及配置的功能。

  在Java中将注解分为了标准注解、元注解和自定义注解三种。这篇文章中我们主要是通过自定义的方式通过AOP技术来实现在Spring Boot中对于程序的高级控制。

AOP介绍

  首先什么是AOP?AOP即面向切面编程,是在Spring 中提供的核心功能之一,其主要的目的是实现对业务功能的横向扩展操作,从而达到低耦合的效果。

  在后台应用开发的过程中,一个比较经典的使用就是在我们的业务系统中进行日志记录功能。日志操作功能在应用中算是辅助性的功能,不需要一遍一遍的重新开发,所以我们需要完成的操作就是通过AOP技术来实现日志切面,AOP操作可以在不改变任何逻辑的基础上实现对应用的基础功能进行扩展的操作。

AOP中的相关概念

  对于AOP中的这些概念,也是面试的时候面试官比较爱问的问题。想要理解Spring Boot 整合AOP技术,那么就要了解在AOP中都有哪些概念,不然在后续利用它实现一些功能的时候也很难理解对应的功能是什么意思。

  下面我们就通过下面这张图来理解AOP相关概念
在这里插入图片描述
  切面(Aspect): 一个业务点的模块化功能,例如通过@Aspect注解标注的类,就可以被称为是一个切面。

  连接点(Joinpoint):在程序中需要在某个特定功能上执行的代码区域,例如某个方法调用的时候或者是在进行异常处理的时候。

  通知(Advice):业务增强,需要完成业务的功能叫做通知,也就是在业务逻辑中需要添加的日志、事务等操作需要先定义好,然后再到需要的地方去进行执行。业务增强包括了如下的五个方面

  • @Before:在切点之前执行操作
  • @After:在切点之后执行操作
  • @AfterReturning:在切点方法执行返回之后
  • @AfterThrowing:在切点方法抛出异常之后
  • @Around:环绕增强,也就是在切点的执行前、执行后、抛出异常的时候等等。这个注解会影响到@AfterThrowing注解。

  切点(Pointcut):切点就是通过筛选的连接点,匹配连接点有个规则,用来判断是否是切点,通过筛选的方法即可作为切点来实现。

  引入(Introduction):在不改变现有代码的情况下,为对应的类添加方法或者是属性的操作。也就是说将切面引入到对应的需要操作的目标类中。

  目标对象(Target Object):被一个或者多个切面通知的对象,Spring AOP是通过代理设计模式实现,既然它选择代理这个对象,那么这个对象就是被永久代理的对象。

  AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面操作,在Spring中AOP操作可以通过JDK的动态代理或者是CGLIB来实现。

  织入(Weaving):把切面连接到其他的应用程序的类型或者对象上的操作,通过这个操作 创建一个被通知的对象,这个操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值