springboot 自定义starter
自定义start启动器的简单流程
pom文件
<?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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>mystarter-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mystarter-spring-boot-starter</name> <description>mystarter-spring-boot-starter</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--‐导入配置文件处理器,配置文件进行绑定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> </dependencies> </project>
@RestController public class MyControler { //注入配置文件类 @Autowired Myproperties myproperties; @RequestMapping("/hello") public String hello(){ return myproperties.getName() +"hello"; } }
@ConfigurationProperties(prefix = "test.starter") public class Myproperties { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
//启动类启动配置 @Configuration //启动条件,需要配置文件配置 test.starter.name 属性 @ConditionalOnProperty("test.starter.name") //导入配置文件 @EnableConfigurationProperties(Myproperties.class) public class MyAutoConfiguration { @Bean public MyControler myControler(){ return new MyControler(); } }
注意:3.x版本的springboot 的启动类配置是放在 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 下的,
以前的版本可以放在 META-INF/spring.properties里 注意区别版本
使用:pom.xml 导入自制启动类。注意使用前要吧自定义启动类jar包导入到本地仓库,否则maven引用不到
<dependency> <groupId>com.example</groupId> <artifactId>mystarter-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
配置文件添加配置,这是启动类启动的条件: