在快速发展的Java技术栈中,SpringBoot 因其简便性和高效性而广受欢迎。SpringBoot 通过其特有的 Starter 机制,极大地简化了项目的依赖管理和配置。SpringBoot Starter本质上是一系列预先定义好的依赖和配置集合,它们能够让你的应用程序快速集成特定的功能。在本教程中,我们将创建一个基础的 Starter,它将提供一个启动展示日志功能,允许其他应用程序轻松地集成和使用这一功能。
思路
一般创建一个 starter 首先会有几个步骤。
创建一个 springboot 项目,删除启动类。
在项目的 resources/META-INF 目录中创建 spring.factories 文件
创建一个 AutoConfiguration 类
在项目中引入此 starter maven
创建 starter 项目
最终完成目录展示
使用 IDEA 的创建 springboot 项目功能创建或者使用 https://start.spring.io/ 创建一个什么 Dependencies 都不选的项目
xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.runbrick</groupId>
<artifactId>runbrick-demo-boot-starter</artifactId>
<version>1.0.0</version>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.6.13</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.runbrick.demo.RunbrickDemoBootStarterApplication</mainClass>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
创建自动配置类。
package com.runbrick.demo.autoconfigure;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyAutoConfiguration {
private static final Logger logger = LoggerFactory.getLogger(MyAutoConfiguration.class);
@Bean
public void logInfoBean() {
// 此处只为演示最简单的实例,启动的时候可以直接看到日志
logger.info("logInfoBean bean start to create.");
}
}
在 src/main/resources 下创建 META-INF 目录,并在该目录下创建 spring.factories, 将下面内容写入文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.runbrick.demo.autoconfigure.MyAutoConfiguration
然后 Maven install 就可以将此 starter 项目放入本地的maven 库中。在你的项目中放入 maven 坐标即可。
<dependency>
<groupId>com.runbrick</groupId>
<artifactId>runbrick-demo-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
启动项目即可看见在 starter 项目中打印的日志信息
评论区