Spring D4

树若有情时,那得青青如许


前言

面向切面编程(Aspect Orient Programming)


一、切面是什么?

公共的,通用的,重复的功能称为切面。
面向切面编程就是讲切面提取出来,单独开发,在需要调用的方法种通过动态代理的方式经行织入

二、手写AOP框架

业务:图书购买业务
切面:事务(公共部分)
先事务开启,然后图书购买业务实现,然后再事务提交(出错时事务回滚)

2.1version1

业务和切面紧耦合在一起,没有拆分

2.2version2

使用子类代理的方式拆分业务和切面

2.3version3

使用静态代理拆分业务和切面,业务和业务接口已拆分,此时切面紧耦合在业务中
在这里插入图片描述

2.4version4

使用静态代理拆分业务和业务接口,切面和切面接口

2.5version5

使用动态代理完成第四个版本的优化

三、Spring支持的AOP的实现

Spring支持AOP的编程,常用的有以下几种:

  • Before通知:在目标方法被调用前调用,涉及接口org.springframework.aop.MethodBeforeAdvice
  • After通知:在目标方法被调用后调用,涉及接口org.springframework.aop.AfterReturningAdvice
  • Throws通知:在目标方法抛出一场时调用,涉及接口org.springframework.aop.ThrowAdvice
  • Around通知:拦截对目标对象方法调用,涉及接口org.aopalliance.intercept.MethodInterceptor

总结

在这里插入图片描述
可空实现(接口):
在这里插入图片描述

在这里插入图片描述

目标对象,代理对象…
java设计模式
静态、动态代理

个中细节看spring_006_aop代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值