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
的工作原理
Spring Boot
在启动时扫描项目所依赖的JAR包,寻找包含spring.factories
文件的JAR包- 根据
spring.factories
配置加载AutoConfigure
类 - 根据
@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原理,及如何实现自定义装配