为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第13天 基于注解开发Spring AOP

标签:
Spring

课程信息

  • 学习课程: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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消