Skip to content

从零开始构建一个简化版的Spring框架,实现SpringIOC、AOP、Bean生命周期、上下文、作用域、资源处理等核心功能, 致力于帮助大家熟悉和梳理Spring源码核心逻辑

Notifications You must be signed in to change notification settings

zhshio/micro-spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌱 手写Spring渐进式源码实践

🎯 项目简介

​ 该项目旨在通过循序渐进的方式,从零开始构建一个简化版的Spring框架,以深入理解并重现SpringIOCAOPBean生命周期、上下文、作用域、资源处理等核心功能

​ 力求在类名和层次结构上与Spring源码保持一致性,同时在合适之处进行了适度简化,代码附带详细中文注释及单元测试, 便于梳理Spring源码脉络,方便日后学习和理解。

​ 让我们一起深入Spring内核,通过亲手编写源码来揭示其强大而优雅的设计理念吧💪!

💡 实现功能

  • 🔧 设计模式应用:运用模板模式优化Bean注册和获取流程,策略模式处理类实例化多样化需求。
  • 📦 IOC实现:从资源文件读取BeanDefinition到容器中进行解析、注册和管理,实现完整的控制反转功能。
  • 🔗 AOP集成:借助JDK动态代理或Cglib实现面向切面编程,将切面逻辑无缝融入Bean生命周期。
  • Bean生命周期管理:实现应用上下文, 全面覆盖Bean创建、初始化、属性注入、后置处理器调用等多个阶段。
  • 🔁 三级缓存解决循环依赖:模拟Spring内部机制,采用三级缓存方案成功解决了Bean之间的循环依赖问题。

🛠️ 如何使用

  1. 克隆本仓库到本地环境:
git clone https://github.com/zhshio/micro-spring.git
  1. 进入项目目录,查看示例代码及测试用例。
  2. 按照各模块的注释和文档了解其实现思路与细节。

🙌 贡献指南

欢迎各位开发者参与贡献,您可以提交PR改进代码、修复bug或提供新的功能实现。

📚 参考资料

About

从零开始构建一个简化版的Spring框架,实现SpringIOC、AOP、Bean生命周期、上下文、作用域、资源处理等核心功能, 致力于帮助大家熟悉和梳理Spring源码核心逻辑

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages