Starter 是 Spring Boot 的四大核心功能特性之一,除此之外,Spring Boot 还有自动装配、Actuator 监控等特性。Spring Boot 里面的这些特性,都是为了让开发者在开发基于 Spring 生态下的企业级应用时,只需要关心业务逻辑,减少对配置和外部环境的依赖。
Starter
Starter 是启动依赖,它的主要作用有几个:
- Starter 组件以功能为纬度,来维护对应的 jar 包的版本依赖,使得开发者可以不需要去关心这些版本冲突这种容易出错的细节。
- Starter 组件会把对应功能的所有 jar 包依赖全部导入进来,避免了开发者自己去引入依赖带来的麻烦。
- Starter 内部集成了自动装配的机制,也就说在程序中依赖对应的starter 组件以后,这个组件自动会集成到 Spring 生态下,并且对于相关 Bean 的管理,也是基于自动装配机制来完成。
- 依赖 Starter 组件后,这个组件对应的功能所需要维护的外部化配置,会自动集成到 Spring Boot 里面,我们只需要在 application.properties 文件里面进行维护就行了,比如 Redis 这个starter,只需要在 application.properties文件里面添加 redis 的连接信息就可以直接使用了。
第三方starter 组件
Starter 组件几乎完美的体现了 Spring Boot 里面约定优于配置的理念。
另外,Spring Boot 官方提供了很多的 Starter 组件,比如 Redis、JPA、MongoDB等等。
但是官方并不一定维护了所有中间件的 Starter,所以对于不存在的 Starter,第三方组
件一般会自己去维护一个。
(如图)官方的 starter 和第三方的 starter 组件,最大的区别在于命名上。
官方维护的starter 的以 spring-boot-starter 开头的前缀。
第三方维护的 starter 是以 spring-boot-starter 结尾的后缀。