Springboot-SpringBoot的来源
SpringBoot 的来源
Spring 的发展历史
Spring1.X
由于 EJB 和 Java EE 开发的繁琐、低效,Spring 在探索革新中开发出来。
Spring 1.x 版本提供了核心的 IOC 和 AOP 功能。此时 Java 的 1.5 还没有出来,没有注解功能。Spring 的所有配置都在 xml 文件中。
Spring2.x
随着 Java1.5 的出现,Spring 提供了一些注解来实现的配置功能。如@Compoent、@Service、@Controller、@RequestMapper
Spring3.x
注解增强,如
@Configuration 去配置文件
@Compoent-Scan 注解扫描
@Import 引入其他配置类
@Enable 模块驱动,开启某个模块
Spring4.x
全面支持 java8:如 lambda 表达式、新的日期和 api 的支持
核心容器的增强:泛型依赖注入、map 依赖注入、list 依赖注入
web 容器的增强:基于 servlet3.0 开发、提供 RestController 注解
WebSocket 的支持
Spring5.X
最低要求 java8、核心容器修改、响应式编程、使用 kotlin 函数式编程
SpringBoot 的诞生
由于 Spring 在开发应用的时候的繁琐流程,往往搭建一个项目需要大半天的时间,而且还容易出现冲突问题。Springboot 应势而生。Springboot 提供了约定大于配置、Start 封装启动依赖、actuator 监控、以及自带容器的功能。类似于一个脚手架将基本的功能都进行了封装。
加载类的变化
- 通过 xml 文件声明 bean
- 通过在 xml 中声明 compoent-scan 指定路径+注解
- 通过@configuration 注入 bean
- 增加@import 注解,指定 select,加载不同的 configuration(没有注解)
- Springboot 中的@SpringBootApplication 中包含了@EnableAutoConfiguration,@EnableAutoConfiguration 中包含了@Import 注解,通过 AutoConfigurationImportSelector 扫描所有 jar 包路径下 spring.fatcory 下的配置类(spi 机制)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zeofuns!