所以在编写面经手册关于 Spring 系列时,我也希望它是一项有益于程序员真正成长的技术资料和价值汇总,而不仅仅是对一些列繁杂内容的罗列。那么从借鉴 tiny-spring、mini-spring 以及对我对Spring的学习和常折腾开发中间件的经验上,来编写一款适合自己沉淀也满足于大家学习的Spring资料。
本仓库以 Spring 源码学习为目的,通过带着读者一点点手写简化版 Spring 框架,了解 Spring 核心原理,为后续再深入学习 Spring 打下基础。
在手写的过程中会剔除 Spring 源码中繁杂的内容,摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。
所有的内容实现都会由简开始,一步步带着大家实现,最终所有的内容完成后,在提供一个相对完整的 small-spring,在这个过程中只要你能跟着走下来,那么最后你一定可以较容易的阅读 Spring 源码了。
三、计划
原定这周已经准备了 Spring AOP 筛选通知器的相关文章,源码已经撸好了。但发现这样发下去我估计阅读量是要劈叉,多数都进收藏夹。
写一篇文章最大的希望是与读者互动起来,不怕你提提意见,就怕你不给三连!所有读者给出的留言、评论、点赞、分享,都是下一篇文章的120迈动力的开始,所以这篇文章的源码撸完后,决定该把 Spring 整理整理了,不仅让我自己有一个学习的过程沉淀感,也让读者能真的学会这部分内容。背,那是八股文,懂,才能涨姿势!
当你阅读 Spring 源码时你会看到各种的嵌套、递归、代理,以及可能连想调试时都不清楚断点要打在哪里,运行起来的程序跳来跳去。最终导致自己也就看不下去这份源码了!这是因为 Spring 发展的太久了,它为了满足不同的场景,已经做了太多的补充和优化,所以我们要做的是剥丝抽茧,体现核心,把最直接相干的内容体现出来进行学习,才更容易理解。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。