该项目旨在通过循序渐进的方式,从零开始构建一个简化版的Spring框架,以深入理解并重现SpringIOC、AOP、Bean生命周期、上下文、作用域、资源处理等核心功能
力求在类名和层次结构上与Spring源码保持一致性,同时在合适之处进行了适度简化,代码附带详细中文注释及单元测试, 便于梳理Spring源码脉络,方便日后学习和理解。
让我们一起深入Spring内核,通过亲手编写源码来揭示其强大而优雅的设计理念吧💪!
- 🔧 设计模式应用:运用模板模式优化
Bean注册和获取流程,策略模式处理类实例化多样化需求。 - 📦
IOC实现:从资源文件读取BeanDefinition到容器中进行解析、注册和管理,实现完整的控制反转功能。 - 🔗
AOP集成:借助JDK动态代理或Cglib实现面向切面编程,将切面逻辑无缝融入Bean生命周期。 - ⏳
Bean生命周期管理:实现应用上下文, 全面覆盖Bean创建、初始化、属性注入、后置处理器调用等多个阶段。 - 🔁 三级缓存解决循环依赖:模拟
Spring内部机制,采用三级缓存方案成功解决了Bean之间的循环依赖问题。
- 克隆本仓库到本地环境:
git clone https://github.com/zhshio/micro-spring.git- 进入项目目录,查看示例代码及测试用例。
- 按照各模块的注释和文档了解其实现思路与细节。
欢迎各位开发者参与贡献,您可以提交PR改进代码、修复bug或提供新的功能实现。