pom.xml
創(chuàng)建一個新的springboot
工程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>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ww</groupId>
<artifactId>myfirst-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
ControllerProperties屬性類
ConfigurationProperties
注解可以在配置文件中配置了贤笆,前綴就是mycp
澄者。
@ConfigurationProperties(prefix = "mycp")
public class ControllerProperties {
@Value("hello")
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
StarterAutoConfiguration自動裝配類
@Configuration
@EnableConfigurationProperties(ControllerProperties.class)
public class StarterAutoConfiguration {
@Bean
public StarterController starterController(ControllerProperties controllerProperties) {
return new StarterController(controllerProperties.getMsg());
}
}
StarterController控制器疲牵,測試用
public class StarterController {
private String msg;
public StarterController(String msg){
this.msg=msg;
}
public void hello() {
System.out.println(msg);
}
}
添加spring.factories
[圖片上傳中...(image-d6c6b7-1684848509801-7)]
內(nèi)容為自動裝配類全限定名。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ww.starter.StarterAutoConfiguration
安裝到本地倉庫
可以用maven
的命令mvn clean install
。
image.png
測試
在其他項目中引入:
<dependency>
<groupId>com.ww</groupId>
<artifactId>myfirst-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
運行:
image.png
輸出了默認(rèn)值:
image.png
我們在配置文件修改試試:
image.png
image.png
至此我們自定義了一個starter睛约,其實步驟也很簡單,定義自動配置類帝洪,創(chuàng)建spring.factories
并配置進(jìn)去,創(chuàng)建屬性配置類脚猾,添加相應(yīng)的注解葱峡,打包發(fā)布,其他項目可以引用龙助。