Skip to content

Repository files navigation

手写SpringBoot

为什么要动手实现

参考自廖大的博客:https://liaoxuefeng.com/books/summerframework/introduction/index.html

学习一个框架最好的方法是实现一个

实现思路

ID Problem Article
000 实现资源扫描器 解决思路
001 创建BeanDefinition 解决思路
002 创建Bean实例 解决思路
003 实现BeanPostProcessor 解决思路
004 实现AOP 解决思路
005 实现JDBCTemplate 解决思路
006 实现事务 解决思路
007 实现WebMvc 解决思路
007 实现Boot 解决思路

总结

总共用了 7k 多行代码实现了一个迷你的 springboot,已实现特性:

  • 实现资源扫描器
  • 实现 IOC
  • 实现 BeanPostProcessor
  • 实现 AOP
  • 实现 JDBCTemplate
  • 实现事务
  • 实现 WebMvc
  • 实现 Boot
  • 实现 FactoryBean:FactoryBean 是 spring 提供的工厂 bean,用于复杂 Bean 的创建(如代理对象、连接池等)
  • 实现 spring 的 spi 机制
  • 实现 JarLauncher:springboot 是通过 JarLauncher,使用自定义的 ClassLoader 去加载 class 和 jar 包,而且提供了 Maven 插件,自动设置 Main-Class。 这部分实现起来比较复杂,而本项目是通过解压 war 包的办法实现 Tomcat 的 ClassLoader 加载

About

Build a mini springboot framework from scratch

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages