课程信息
- 学习课程:Java工程师2022版
- 章节名称:Spring AOP面向切面编程-基于注解开发Spring AOP
- 讲师:悟空
课程内容
基于注解开发Spring AOP
<!-- 初始化IOC容器 -->
<context:component-scan base-package="com.imooc"/>
<!-- 启用Spring AOP注解模式 -->
<aop:aspect-autoproxy />
给切面添加注解:
@Component注解:标记当前类为组件
@Aspect注解:说明当前类是切面类
@Around(“execution()")环绕通知注解,参数为pointcut切点表达式
Spring AOP底层实现原理(重点)
Spring基于设计模式中的代理模式实现功能动态扩展,包含两种形式:
目标类拥有接口,通过JDK动态代理实现功能扩展
目标类没有接口,通过CGLib组件实现功能扩展
代理模式:
代理模式通过代理对象对原对象实现功能扩展
代理模式:类比回顾——租房,租户、中介、房东、二房东,接口、嵌套
静态代理——必须手动创建代理类的代理模式使用方式
动态代理(自动):在JDK1.2以后,由于反射机制的引入,为我们自动创建代理模式提供了可能
创建代理类:代理类持有委托类的对象属性,实例化时通过构造方法给委托类赋值,就相当于持有委托类对象了)
动态代理必须实现接口才可以运行
在invoke方法对目标方法进行增强
CGLib实现代理类
CGLIb是运行时字节码增强技术
Spring AOP扩展无接口类用CGLib
AOP会运行时生成目标继承类字节码的方式进行行为扩展
学习收获
学习了基于注解开发Spring AOP,Spring AOP的静态代理和动态代理模式
打卡截图
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦