mini-spring是简化版的spring。写作该项目的目的有二,一是加深本人对spring源码的理解;二是引导小伙伴更好地阅读spring源码。
对于想要阅读spring源码来提升内功的小伙伴来说,直接阅读spring源码不是一个很好的选择。spring是一部设计精良的机器,从外部来看,它优雅、强大又简单易用;从内部来看,它包含众多的部件,细节繁多。如果直接阅读spring源码,很容易陷入到繁多的代码细节之中,理不清代码层次,打击读源码的信心。如果在阅读之前,先了解spring的设计思想、模块设计和代码层次等,然后带着这些知识再去阅读spring源码,将事半功倍。
本项目既然是简化版的spring,不追求功能完备,只追求尽可能保留spring的主要功能的前提下,代码简单明了。本项目结合本人阅读spring源码的经验,一步步实现带IOC和AOP功能的迷你型spring,部分实现逻辑会适当简化方便理解。
每个功能点对应一个分支,了解新增的功能,切换到以下功能点对应的分支,相关的改动点在changelog.md文件中描述。