# :seedling: Spring 手撸专栏 - 易学、好写、能懂!
![](https://github.com/fuzhengwei/small-spring/blob/main/docs/assets/img/HeadDiagram.png?raw=true)
>小傅哥,一线互联网 Java 工程师、架构师,开发过交易、营销类项目,实现过运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地有丰富的经验。在热衷于Java语言的同时,也喜欢研究中继器、I/O板卡、C#和PHP,是一个技术活跃的折腾者。
>[:pencil2: 虫洞 · 科技栈,博主](https://bugstack.cn),[:blue_book: 《重学Java设计模式》图书作者](https://item.jd.com/13218336.html)
<br/>
<div align="center">
<a href="https://bugstack.cn" style="text-decoration:none"><img src="https://bugstack.cn/images/system/CodeGuide-LOGO.png?raw=true" width="256px"></a>
</div>
<br/>
<div align="center">
<a href="https://bugstack.cn/md/other/guide-to-reading.html"><img src="https://bugstack.cn/images/system/CodeGuide-Read.svg"></a>
<a href="https://bugstack.cn/images/personal/qrcode.png"><img src="https://bugstack.cn/images/system/CodeGuide-WeiXinCode.svg"></a>
<a href="https://bugstack.cn/md/knowledge/pdf/2021-01-26-Java%E9%9D%A2%E7%BB%8F%E6%89%8B%E5%86%8CPDF%E4%B8%8B%E8%BD%BD.html"><img src="https://bugstack.cn/images/system/CodeGuide-JavaPDF.svg"></a>
<a href="https://mp.weixin.qq.com/s/VthCUlT8oAJqKOoq5_NzSQ"><img src="https://bugstack.cn/images/system/CodeGuide-Lottery.svg"></a>
<a href="https://github.com/fuzhengwei/CodeGuide"><img src="https://badgen.net/github/stars/fuzhengwei/CodeGuide?icon=github&color=4ab8a1"></a>
</div>
<br/>
<div align="center">
<table>
<tr>
<td align=“center">添加微信:fustack</td>
<td align=“center">关注公众号:bugstack虫洞栈</td>
</tr>
<tr>
<td align=“center"><img src="https://bugstack.cn/images/personal/fustack.png" width="128px"></td>
<td align=“center"><img src="https://bugstack.cn/images/personal/qrcode.png" width="128px"></td>
</tr>
</table>
</div>
<br/>
<div align="center">
<p align="center"><b>知识星球</b>:<a href="https://t.zsxq.com/jAi2nUf">码农会锁 👇</a></p>
<table>
<tbody>
<tr>
<td align="center" valign="middle">
<a href="https://t.zsxq.com/jAi2nUf"><img src="https://bugstack.cn/images/system/CodeGuide-xingqiu-2.png"></a>
</td>
</tr>
</tbody>
</table>
</div>
## ⛳ **目录**
- 代码仓库:[Github](https://github.com/fuzhengwei/small-spring) | [Gitee](https://gitee.com/fustack/small-spring) | [CodeChina](https://codechina.csdn.net/Yao__Shun__Yu/small-spring)
- [学习说明 🍁`(学习套路&源码使用)`](https://github.com/fuzhengwei/small-spring#bookmark-%E5%AD%A6%E4%B9%A0%E8%AF%B4%E6%98%8E)
- [下电子书](https://github.com/fuzhengwei/small-spring#-pdf-%E4%B8%8B%E8%BD%BD) 📚[《手撸 Spring》 - `新增专属3个章节,代理类属性填充、循环依赖、类型转换`](https://download.csdn.net/download/Yao__Shun__Yu/21009038)
- [章节目录](https://github.com/fuzhengwei/small-spring#pencil-%E7%AB%A0%E8%8A%82%E7%9B%AE%E5%BD%95)
- [我的书籍](https://github.com/fuzhengwei/small-spring#books-%E6%88%91%E7%9A%84%E4%B9%A6%E7%B1%8D)
- [问题交流](https://github.com/fuzhengwei/small-spring#paw_prints-%E9%97%AE%E9%A2%98%E4%BA%A4%E6%B5%81)
- [参考资料](https://github.com/fuzhengwei/small-spring#tulip-%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99)
- [学习打卡](https://github.com/fuzhengwei/small-spring/issues) - 👣留下你学习的足迹,进度、问题、想法、意见等等,提交[`issue`](https://github.com/fuzhengwei/small-spring/issues/new)同好交流、共同进步
## :bookmark: 学习说明
本仓库以 Spring 源码学习为目的,通过手写简化版 Spring 框架,了解 Spring 核心原理。[Go -> 详细介绍](https://mp.weixin.qq.com/s/kYio8zIG5UL-To3SV-uRmA)
在手写的过程中会简化 Spring 源码,摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。
[`小傅哥`](https://bugstack.cn/),之所以开始撸Spring源码,主要就是因为在编写[《面经手册》](https://bugstack.cn/itstack/interview.html)时,涉及到的Spring源码都会写很多的文字描述、绘制冗长的流程图稿、做不少的内容铺垫,但对于新人来说想直接学习这部分内容仍是非常困难的,那么现在为了让我以及更多的伙伴能有一个学习的`抓手`,我们来一起研究研究什么是快乐星球!
---
1. 此专栏为实战编码类资料,在学习的过程中需要结合文中每个章节里,要解决的**目标**,进行的思路**设计**,带入到编码实操过程。在学习编码的同时也最好理解关于这部分内容为什么这样的实现,它用到了哪样的设计模式,采用了什么手段做了什么样的职责分离。只有通过这样的学习才能更好的理解和掌握 Spring 源码的实现过程,也能帮助你在以后的深入学习和实践应用的过程中打下一个扎实的基础。
2. 另外此专栏内容的学习上结合了[设计模式](https://item.jd.com/13218336.html),下对应了[SpringBoot 中间件设计和开发](https://juejin.cn/book/6940996508632219689),所以读者在学习的过程中如果遇到不理解的设计模式可以翻阅相应的资料,在学习完 Spring 后还可以结合中间件的内容进行练习。
3. **源码**:此专栏涉及到的源码已经全部整合到当前工程下,可以与章节中对应的案例源码一一匹配上。大家拿到整套工程可以直接运行,也可以把每个章节对应的源码工程单独打开运行。
4. 如果你在学习的过程中遇到什么问题,包括:不能运行、优化意见、文字错误等任何问题都可以提交issue,也可以联系作者:`小傅哥` 的微信,`fustack`
5. 在专栏的内容编写中,每一个章节都提供了清晰的设计图稿和对应的类图,所以学习过程中一定不要只是在乎代码是怎么编写的,更重要的是理解这些设计的内容是如何来的,在这个过程中不断的实现Bean生命周期的全部核心内容,如下图:
| Spring Bean 的生命周期 |
| ---- |
| ![](https://github.com/fuzhengwei/small-spring/blob/main/docs/assets/img/Bean%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F.png?raw=true) |
## 📚 PDF 下载
![](https://github.com/fuzhengwei/small-spring/blob/main/docs/assets/img/spring-0-04.png?raw=true)
PDF 下载:[https://download.csdn.net/download/Yao__Shun__Yu/21009038](https://download.csdn.net/download/Yao__Shun__Yu/21009038)
## :pencil: 章节目录
- [x] [`难度【★☆☆☆☆】第 01 章:开篇介绍,我要带你撸 Spring 啦!`](https://mp.weixin.qq.com/s/g7YdIe_FSrk-WE8nQRO3TA)
- [x] [`难度【★☆☆☆☆】第 02 章:小试牛刀,实现一个简单的Bean容器`](https://mp.weixin.qq.com/s/fiWX6abSCiUKHAUa-HKg4A)
- [x] [`难度【★☆☆☆☆】第 03 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取`](https://mp.weixin.qq.com/s/CgvQzm8B-CvQvXdxONC-lA)
- [x] [`难度【★★☆☆☆】第 04 章:崭露头角,基于Cglib实现含构造函数的类实例化策略`](https://mp.weixin.qq.com/s/olrwapkSTQMyIGpR10ZDzA)
- [x] [`难度【★★☆☆☆】第 05 章:一鸣惊人,为Bean对象注入属性和依赖Bean的功能实现`](https://mp.weixin.qq.com/s/EKoMDpa4q8TMikRM2wBIzw)
- [x] [`难度【★★☆☆☆】第 06 章:气吞山河,设计与实现资源加载器,从Spring.xml解析和注册Bean对象`](https://mp.weixin.qq.com/s/GMcHUL7-oB
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
spring练习 step by step (1432个子文件)
CNAME 11B
gitalk.css 23KB
vue.css 12KB
Bean生命周期.drawio 30KB
.DS_Store 6KB
.gitignore 1KB
.gitignore 252B
index.html 3KB
favicon.ico 4KB
small-spring-step-18.iml 2KB
small-spring-step-19.iml 2KB
small-spring-step-15.iml 2KB
small-spring-step-13.iml 2KB
small-spring-step-14.iml 2KB
small-spring-step-16.iml 2KB
small-spring-step-17.iml 2KB
small-spring-step-11.iml 2KB
small-spring-step-12.iml 2KB
small-spring-step-09.iml 1KB
small-spring-step-10.iml 1KB
small-spring-step-06.iml 1KB
small-spring-step-08.iml 1KB
small-spring-step-05.iml 1KB
small-spring-step-07.iml 1KB
small-spring-step-04.iml 1KB
small-spring-step-01.iml 1KB
small-spring-step-03.iml 1016B
small-spring-step-02.iml 848B
small-spring-main.iml 585B
ResolvableType.java 62KB
AnnotationUtils.java 61KB
ConcurrentReferenceHashMap.java 34KB
AnnotatedElementUtils.java 18KB
NumberUtils.java 13KB
NumberUtils.java 13KB
NumberUtils.java 13KB
AbstractAutowireCapableBeanFactory.java 13KB
AbstractAutowireCapableBeanFactory.java 13KB
AbstractAutowireCapableBeanFactory.java 13KB
AbstractAutowireCapableBeanFactory.java 12KB
AbstractAutowireCapableBeanFactory.java 11KB
JdbcTemplate.java 9KB
JdbcTemplate.java 9KB
AbstractAutowireCapableBeanFactory.java 9KB
SerializableTypeWrapper.java 9KB
AbstractAutowireCapableBeanFactory.java 8KB
AbstractAutowireCapableBeanFactory.java 8KB
SynthesizedAnnotationInvocationHandler.java 8KB
AbstractAutowireCapableBeanFactory.java 7KB
AbstractAutowireCapableBeanFactory.java 7KB
AbstractAutowireCapableBeanFactory.java 7KB
ReflectionUtils.java 7KB
TransactionAspectSupport.java 7KB
AbstractAutowireCapableBeanFactory.java 7KB
BridgeMethodResolver.java 7KB
AbstractAutowireCapableBeanFactory.java 7KB
AbstractApplicationContext.java 7KB
AbstractApplicationContext.java 7KB
AbstractApplicationContext.java 7KB
ApiTest.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
AbstractApplicationContext.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
XmlBeanDefinitionReader.java 6KB
GenericConversionService.java 6KB
GenericConversionService.java 6KB
GenericConversionService.java 6KB
ClassUtils.java 5KB
XmlBeanDefinitionReader.java 5KB
XmlBeanDefinitionReader.java 5KB
XmlBeanDefinitionReader.java 5KB
XmlBeanDefinitionReader.java 5KB
JdbcUtils.java 5KB
JdbcUtils.java 5KB
AbstractAutowireCapableBeanFactory.java 5KB
XmlBeanDefinitionReader.java 5KB
XmlBeanDefinitionReader.java 5KB
XmlBeanDefinitionReader.java 5KB
DataSourceTransactionManager.java 5KB
XmlBeanDefinitionReader.java 5KB
ApiTest.java 5KB
AbstractBeanFactory.java 4KB
AbstractBeanFactory.java 4KB
AbstractBeanFactory.java 4KB
MethodParameter.java 4KB
ObjectUtils.java 4KB
AutowiredAnnotationBeanPostProcessor.java 4KB
AutowiredAnnotationBeanPostProcessor.java 4KB
AutowiredAnnotationBeanPostProcessor.java 4KB
ApiTest.java 4KB
共 1432 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
东心十
- 粉丝: 7972
- 资源: 40
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功