创建自动配置
新建一个 Springboot 项目 hello-spring-boot-autoconfigure
pom 文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
新建属性配置类
@ConfigurationProperties("hello")
public class HelloProperties {
private String prefix;
private String suffix;
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getSuffix() {
return suffix;
}
public void setSuffix(String suffix) {
this.suffix = suffix;
}
}
新建服务类
public class HelloService {
@Autowired
private HelloProperties helloProperties;
public String sarHello(String name) {
return helloProperties.getPrefix() + " : " + name + helloProperties.getSuffix();
}
}
自动配置类
/**
* @EnableConfigurationProperties(HelloProperties.class)
* 默认将 HelloProperties 放入容器中
*/
@Configuration
@ConditionalOnMissingBean(HelloService.class)
@EnableConfigurationProperties(HelloProperties.class)
public class HelloServiceAutoConfiguration {
@Bean
public HelloService helloService() {
HelloService helloService = new HelloService();
return helloService;
}
}
在 resources 包下新建 META-INF/spring.factories 配置自动配置
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.zzx.hello.auto.HelloServiceAutoConfiguration
使用install打包放入本地仓库,并新建 starter引入自定义starter
仿照 springboot starter,创建自定义 starter
hello-spring-boot-starter
在 pom 文件中引入自定义的自动配置包
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>hello-spring-boot-autoconfigure</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
使用install打包放入maven仓库就可以在其他项目中引用使用了