tlias--自定义starter
一、先搞懂:自定义 Starter 是什么?
Starter = 一套可复用的自动配置工具包
- 别人引入你的 Starter
- 不用写任何配置
- 直接 @Autowired 就能用你的功能
- 这就是自定义 Starter
你平时用的:
spring-boot-starter-web、spring-boot-starter-redis
全是这种东西!
二、自定义 Starter 步骤(一共 6 步,背会)
目标
做一个 itheima-utils-spring-boot-starter
别人引入后,直接用 TokenParser
第 1 步:创建一个 Maven 项目(工具项目)
项目名:itheima-utils-spring-boot-starter
引入依赖
xml
<dependencies>
<!-- 自动配置核心依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.7.5</version>
</dependency>
</dependencies>
第 2 步:写你的业务类(要被自动配置的类)
比如:TokenParser.java
java
运行
public class TokenParser {
public void parse(){
System.out.println("自定义Starter:TokenParser解析中...");
}
}
注意:不要加 @Component! 因为加了别人也扫描不到。
第 3 步:写 自动配置类(最关键)
创建 TokenAutoConfiguration.java
java
运行
@Configuration // 表示这是一个配置类
public class TokenAutoConfiguration {
// 把 TokenParser 交给 Spring 管理
@Bean
public TokenParser tokenParser(){
return new TokenParser();
}
}
作用:在这里创建 Bean,别人不用加任何注解!
第 4 步:创建 SpringBoot 自动配置文件(固定路径!)
必须创建 固定目录 + 固定文件名:
plaintext
resources/META-INF/spring/ org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件内容:写上你的自动配置类全类名
plaintext
com.itheima.config.TokenAutoConfiguration
第 5 步:打包(maven install)
把你的 Starter 打包到本地仓库
别人就能通过 Maven 引入使用!
第 6 步:别人使用你的 Starter
1. 引入 Maven 依赖
xml
<dependency>
<groupId>com.itheima</groupId>
<artifactId>itheima-utils-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2. 直接注入使用!!!
java
运行
@Service
public class UserService {
@Autowired
private TokenParser tokenParser; // 直接用!
public void test(){
tokenParser.parse(); // 成功运行
}
}
3. 测试成功!
不用配置,不用扫描包,直接用!
三、为什么这样就能用?(原理一句话)
SpringBoot 启动时:
- 自动读取所有 jar 包中的
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports - 加载里面的配置类
- 执行
@Bean,创建对象 - 放入 IOC 容器
- 你直接 @Autowired 注入使用
这就是 SpringBoot 自动配置的终极原理!

查看13道真题和解析