如何理解 Spring Boot 中的 Starter?

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?_第1张图片

另外,Spring Boot 官方提供了很多的 Starter 组件,比如 Redis、JPA、MongoDB等等。 但是官方并不一定维护了所有中间件的 Starter,所以对于不存在的 Starter,第三方组 件一般会自己去维护一个。 (如图)官方的 starter 和第三方的 starter 组件,最大的区别在于命名上。 官方维护的starter 的以 spring-boot-starter 开头的前缀。 第三方维护的 starter 是以 spring-boot-starter 结尾的后缀。

 如何理解 Spring Boot 中的 Starter?_第2张图片

你可能感兴趣的:(java面试题,spring,boot,java,数据库)