Spring boot starter 应用及原理

Posted hanruikai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot starter 应用及原理相关的知识,希望对你有一定的参考价值。

什么是spring boot starter

Spring Boot由众多Starter组成,随着版本的推移Starter家族成员也与日俱增。在传统Maven项目中通常将一些层、组件拆分为模块来管理,以便相互依赖复用,在Spring Boot项目中我们则可以创建自定义Spring Boot Starter来达成该目的。

使用案例

java代码都是自动配置逻辑,前三个都配置在spring.factories文件中,spring boot会扫描jar包中的spring.factories文件进行调用执行。

spring.factories文件内容如下:

 

参考:https://www.jianshu.com/p/45538b44e04e

 

工作原理

总结下Starter的工作原理

  1. Spring Boot在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR包
  2. 根据spring.factories配置加载AutoConfigure
  3. 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context

类似SPI机制

SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。

在Spring中也有一种类似与Java SPI的加载机制。它在META-INF/spring.factories文件中配置接口的实现类名称,然后在程序中读取这些配置文件并实例化。
这种自定义的SPI机制是Spring Boot Starter实现的基础。

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\
com.test.autoconfigure.MainAutoConfigure

 

以上是关于Spring boot starter 应用及原理的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot starter 应用及原理

Spring Boot 自动装配定义与自定义starter原理,及如何实现自定义装配

Spring Boot 自动装配定义与自定义starter原理,及如何实现自定义装配

Spring Boot mybatis-starter原理

Spring Boot核心原理实现及核心注解类

SpringBoot运行原理