Spring AOP统一功能处理(切面、切点、连接点、通知)

文章介绍了AOP(面向切面编程)的基本概念,包括切面、切点、连接点和通知,并阐述了AOP在处理如用户登录验证等场景中的作用。接着,详细讲解了SpringAOP的实现步骤,包括添加框架支持、定义切面、切点和通知,以及如何通过环绕通知实现方法执行时间的统计。最后,通过一个登录验证的AOP实例展示了如何使用SpringAOP进行功能增强。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、 AOP的一些前置知识

 1.1什么是Aop

1.2 AOP的作用 

1.3AOP基础组成 

 二、SpringAOP的实现

2.1添加SpringAOP框架支持

2.2定义切面(Aspect)

2.3定义切点(Pointcut)

2.4定义通知(Advice)

三、实例展示(计时器)

代码实现 


一、 AOP的一些前置知识

 1.1什么是Aop

Aop是一种统一处理某一问题的思想,比如验证用户是否登录

在为使用Aop的时候,我们需要验证的每个类(页面)都有调用验证方法,而使用了Aop后,我们只需要在某处把验证规则配置一下,就可以实现对需要验证的类的登录验证,不用每个类在重复调用验证方法了。

Aop由切面、切点、连接点、通知组成

切面表示我们要统一处理的功能(类)——比如验证用户是否登录
切点则是是否进行Aop拦截的规则(哪些页面不需要进行登录验证,哪些需要,这种规则)

连接点则是具体到哪些页面需要进行拦截(哪些类需要调用登录验证方法)
通知则是验证用户是否登录的那个具体方法实现(代码细节)——》前置通知,后置通知 

 

而AOP是一种思想,而SpringAOP是这个框架对AOP思想的实现(类似IoC和DI) 

1.2 AOP的作用 


想象一个场景,我们在做后台系统时,除了登录和注册等几个功能不需要做用户登录验证之外,其他几乎所有页面调用的前端控制器(Controller)都需要先验证用户登录的状态,那么这个时候我们要怎么处理呢?

如果不使用AOP,我们之前的处理方式是每个Controller都要写一遍用户登录验证,然而当你的功能越来越多,那么你要写的登录验证也越来越多,就有了很多重复的代码,而且这些方法的代码修改和维护的成本就会很高。

使用AOP,在进入业务代码之前进行统一的一个处理,去验证用户是否登录。

除了统一的用户登录判断之外,AOP还可以实现:

  • 统一日志记录
  • 统一方法执行时间统计
  • 统一的返回格式设置
  • 统一的异常处理
  • 事务的开启和提交

也就是说使用AOP可以扩充多个对象的某个能力,所以AOP可以说是OOP(Object Oriented Programming)面向对象编程的补充和完善。
 

1.3AOP基础组成 

AOP由以下四部分组成:

1.切面(Aspect):定义AOP业务类型(表示当前AOP是做什么的)。

2.连接点(Join Point):有可能调用AOP的地方就叫做一个连接点。

3.切点(Pointcut):定义AOP拦截规则。

4.通知(Advice)【增强方法】:定义什么时候干什么事(代码的实现细节,前后顺序)。

通知定义的是被拦截的方法具体要执行的业务,比如用户登录权限验证方法就是具体要执行的业务。

  • a) 前置通知:在拦截的目标方法之前执行的通知(事件)
  • b)后置通知:在拦截的目标方法之后执行的通知(事件)
  • c)返回之后通知:在拦截的目标方法返回数据之后通知
  • d)抛出异常之后的通知:在拦截的目标方法抛出异常之后执行的通知
  • eÿ
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是小鱼儿哈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值