手把手带你写一个 MiniSpring
郭屹
前 Sun Microsystems Java 研发工程师,开源软件 MiniSpring、MiniTomcat 开发者
6170 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 26 讲
手把手带你写一个 MiniSpring
15
15
1.0x
00:00/00:00
登录|注册

21|再回首: 如何实现Spring AOP?

你好,我是郭屹。
到这一节课,我们的 Spring AOP 部分也就结束了,你是不是跟随我的这个步骤也实现了自己的 AOP 呢?欢迎你把你的实现代码分享出来,我们一起讨论,共同进步!为了让你对这一章的内容掌握得更加牢固,我们对 AOP 的内容做一个重点回顾。

重点回顾

Spring AOP 是 Spring 框架的一个核心组件之一,是 Spring 面向切面编程的探索。面向对象和面向切面,两者一纵一横,编织成一个完整的程序结构。
在 AOP 编程中,Aspect 指的是横切逻辑(cross-cutting concerns),也就是那些和基本业务逻辑无关,但是却是很多不同业务代码共同需要的功能,比如日志记录、安全检查、事务管理,等等。Aspect 能够通过 Join point,Advice 和 Pointcut 来定义,在运行的时候,能够自动在 Pointcut 范围内的不同类型的 Advice 作用在不同的 Join point 上,实现对横切逻辑的处理。
所以,这个 AOP 编程可以看作是一种以 Aspect 为核心的编程方式,它强调的是将横切逻辑作为一个独立的属性进行处理,而不是直接嵌入到基本业务逻辑中。这样做,可以提高代码的可复用性、可维护性和可扩展性,使得代码更容易理解和设计。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Spring AOP是Spring框架的核心组件之一,实现了面向切面编程的探索。在AOP编程中,Aspect通过Join point、Advice和Pointcut来定义,实现对横切逻辑的处理。本文介绍了如何基于JDK动态代理实现AOP,并探讨了扩展到支持Cglib、在方法前后进行拦截、批量匹配代理方法以及自动添加动态代理的方法。通过对每个主题的思考题和参考答案的讨论,读者可以深入了解Spring AOP的实现原理和扩展方法。文章通过实际代码示例和思考题引导读者深入思考和实践,使得读者能够更好地掌握Spring AOP的核心概念和实现技术。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 MiniSpring》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • __@Wong
    这个课程终于学完了,讲实话收获很多。上班偷着看课程到周末写代码,前前后后花了一个多月的时间。之前也有看过spring的源码,但是看后基本忘记了。感谢本课程作者,将Spring庞大的体系进行了拆解剥离出主干,大大降低了spring学习起来的困难程度,学完对spring的体系也有了深层次的认识。一方面对spring的流程加深了理解,另一方面学习spring的优秀的架构体系设计。 git地址贴这里了,喜欢的点个小星星,建议一开始使用maven来构建项目方便很多 期待后续miniTomcat课程。 https://github.com/hhhhhzj/mini-spring/tree/master

    作者回复: 赞你!

    2023-06-24归属地:广东
    2
    3
  • 1184507801
    老师你发的源码地址失效了啊

    作者回复: 你多试几次,国内访问Github不稳定。我后面的MiniTomcat课程让助手搬到国内的Gitee了

    2024-01-09归属地:广东
  • 风轻扬
    期待miniTomcat课程

    作者回复: 会有的

    2023-06-07归属地:北京
  • peter
    PatternMatchUtils是SDK提供的,怎么增加方法?派生一个类吗?

    作者回复: util下的一个工具类,看github

    2023-04-29归属地:北京
  • dll
    终于花了一个礼拜摸鱼学完了,我的代码在https://github.com/dll02/mini_spring ,环境搭建最大的难度是idea启动tomcat那里,主要需要确认编译后的代码处在out目录里生成的文件结构是否是预期的,启动以后打开tomcat对应的manager页面,检查加载进tomcat的模块名字,最后还需要注意tomcat和使用http serverlet包的匹配,其他的网上都有资料,对照检查。 很期待老师其他的课程,手写tomcat啥的,自己学习如何从零造框架确实很有助于自己学习理解代码,精进自己的代码手艺。 谢谢老师分享教学。
    2023-08-16归属地:上海
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部