SpringBoot中自定义Starter
- 1. 前置知识
- 2. 自定义自己的Starter示例
1. 前置知识
在我们自定义starter的时候,先要了解 Springboot自动装配原理。
我们可以参照 mybatis-plus-boot-starter源码来实现我们的自定义starter功能。
1-1 什么是Starter?
Starter是一种用于简化依赖管理和配置的方式。
它是一个预定义的依赖关系集合, 包含了一组常用的依赖和配置,
以便于快速启动和构建特定类型的应用程序。
使用Starter可以大大简化项目的依赖管理和配置工作,
提供了一种快速启动和构建特定类型应用程序的方式。
例如,Spring Boot提供了spring-boot-starter-web用于快速构建Web应用程序,
它包含了常用的Web依赖(如Spring MVC、Tomcat等)和相关的自动配置。
开发者也可以自定义自己的Starter,将常用的依赖和配置打包为一个Starter,
方便在复用和共享。自定义Starter可以提供一组特定领域的依赖和配置,以满足开发需求。
1-2 常用的Condition注解说明
在加载自动配置类的时候,
并不是将spring.factories的配置全部加载进来,
而是通过@Conditional等注解的判断进行动态加载
@Conditional其实是spring底层注解,
意思就是根据不同的条件,来进行自己不同的条件判断,
如果满足指定的条件,那么配置类里边的配置才会生效。
常用的Conditional注解:
@ConditionalOnClass : classp ath中存在该类时起效
@ConditionalOnMissingClass : classpath中不存在该类时起效
@ConditionalOnBean : DI容器中存在该类型Bean时起效
@ConditionalOnMissingBean : DI容器中不存在该类型Bean时起效
@ConditionalOnSingleCandidate : DI容器中该类型Bean只有一个或 @Pr