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