Spring AOP

目录

AOP

AOP的组成

实现Spring AOP

总结

织入

Spring拦截器

统一异常处理

统一数据返回格式


AOP

AOP是一种思想,对某一类事情的集中处理

OOP 面向对象编程 AOP 面向切面编程

Spring AOP是一个框架,提供了一种对AOP思想的实现 主要为解耦而生

AOP的组成

切面、连接点、切点、通知

1.切面:定义AOP业务类型 当前AOP是干嘛得

2.连接点: 调用AOP得地方叫做一个连接点

3.切点: 定义AOP拦截规则

4.通知:定义什么时候干什么事情

        4.1 前置通知:拦截得目标方法之前执行的通知

        4.2 后置通知:拦截得目标方法之后的通知

        4.3 返回之后通知: 拦截的目标方法返回数据之后通知

        4.4 抛出异常之后的通知:拦截的目标方法抛出异常之后执行的通知

        4.5 环绕通知 在拦截方法之前后都执行的通知

实现Spring AOP

  1. 添加Spring AOP框架支持
  2. 定义切面和切点
  3. 定义通知

当浏览器访问这个临时方法时,会优先被拦截执行

一个切面可以有多个切点

对不同的切点定义不同的通知

环绕通知与其他通知不同,

  1. 它有返回值
  2. 它有参数
  3. 它同时拥有前置,后置通知

当一个切点既有前置通知,后置通知,又有环绕通知时

那么环绕通知的前置优先级最高,环绕通知的后置通知优先级最低

总结

AOP时对某方面能力的统一实现,是一种思想,而Spring AOP是对AOP的具体实现,Spring AOP通过Aspecto注解的方式实现AOP的功能

Spring AOP的实现步骤

  1. 添加Spring AOP框架支持
  2. 定义切面和切点
  3. 定义通知

Spring AOP是通过动态代理的方式,在运行期将AOP代码织入到程序中的,它的实现方式有两种:JDK Proxy和CGLIB


织入

代理的生成时机

编译期类->加载期->运行期

JDK和CGLIB的区别

JDK实现,要求被代理类必须实现接口

CGLIB实现,被代理类可以不实现接口

Spring拦截器

  1. 创建自定义拦截器,实现Handlerinterceptor接口的preHandle方法
  2. 将自定义拦截器加入WebMvcConfigurer的addinterceptors方法中

创建一个普通登录校验,和测试方法

1.创建自定义拦截器,实现Handlerinterceptor接口的preHandle方法

2.将自定义拦截器加入WebMvcConfigurer的addinterceptors方法中

当访问test2时,会被拦截

当第一次访问login时,虽然没被拦截器拦截,但是账号密码错误,依旧为false

当账号密码输入正确时,就会创建session,也就是浏览器内的cookie

这时就有了session,这样拦截器就允许test2执行了

统一异常处理

统一数据返回格式

实现接口ResponseBodyAdvice的supports方法和beforeBodyWrite方法

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值