自定义 Spring Boot 启动器
时间: 2024-12-10 16:16:49 浏览: 6
Spring Boot 自定义starter启动器(demo).zip
在Spring Boot中,自定义启动器(Starter)是一种非常方便的方式来封装和复用配置和依赖。通过自定义启动器,你可以将一组相关的依赖和配置打包在一起,使得在项目中引入和使用这些依赖变得更加简单。
下面是一个创建自定义Spring Boot启动器的步骤:
### 1. 创建Maven项目
首先,创建一个新的Maven项目作为你的自定义启动器。
### 2. 添加依赖
在`pom.xml`中添加Spring Boot的依赖管理插件和必要的依赖。
```xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>custom-spring-boot-starter</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>custom-spring-boot-starter</name>
<description>Custom Spring Boot Starter</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- Add your dependencies here -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
```
### 3. 创建配置类
创建一个配置类,用于定义你的自定义配置和自动配置逻辑。
```java
package com.example.customstarter;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "custom.starter")
public class CustomStarterProperties {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
```
### 4. 创建自动配置类
创建一个自动配置类,用于初始化你的自定义组件。
```java
package com.example.customstarter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(CustomStarterProperties.class)
public class CustomStarterAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CustomService customService(CustomStarterProperties properties) {
return new CustomService(properties.getMessage());
}
}
```
### 5. 创建服务类
创建一个服务类,用于实现你的自定义功能。
```java
package com.example.customstarter;
public class CustomService {
private String message;
public CustomService(String message) {
this.message = message;
}
public void printMessage() {
System.out.println(message);
}
}
```
### 6. 创建META-INF/spring.factories文件
在`src/main/resources/META-INF/`目录下创建`spring.factories`文件,并添加自动配置类。
```
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.customstarter.CustomStarterAutoConfiguration
```
### 7. 构建和发布
使用Maven构建你的项目,并将其发布到Maven仓库中。
### 8. 在其他项目中引入自定义启动器
在你的其他Spring Boot项目中,引入你的自定义启动器依赖。
```xml
<dependency>
<groupId>com.example</groupId>
<artifactId>custom-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
```
### 9. 配置和使用
在`application.properties`或`application.yml`中配置你的自定义属性。
```properties
custom.starter.message=Hello, Spring Boot Starter!
```
在代码中使用你的自定义服务。
```java
@Autowired
private CustomService customService;
public void test() {
customService.printMessage();
}
```
阅读全文