文章目录
自定义stater pom文件配置文件类properties使用配置类创建AutoConfiguration项目结构自定义stater pom文件
引入自动配置类spring-boot-starter
<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sl.learn.starter</groupId><artifactId>spring-boot-starter</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
配置文件类properties
用来保存默认的配置
@ConfigurationProperties(prefix = "stater")public class StaterProperties {private String code;private String desc;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}}
使用配置类
public class StaterService {private StaterProperties staterProperties;public StaterProperties getStaterProperties() {return staterProperties;}public void setStaterProperties(StaterProperties staterProperties) {this.staterProperties = staterProperties;}public String say() {return staterProperties.getCode() + "-" + staterProperties.getDesc();}}
创建AutoConfiguration
创建一个AutoConfiguration,引用定义好的配置信息;在AutoConfiguration中实现所有starter应该完成的操作,并且把这个类加入spring.factories配置文件中进行声明。
@Configuration@EnableConfigurationProperties(StaterProperties.class)public class StaterAutoConfiguration {@Bean@ConditionalOnBeanpublic StaterService staterService() {return new StaterService();}}
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.sl.learn.config.StaterAutoConfiguration
项目结构
打包项目安装到Maven仓库,之后在一个SpringBoot项目中引入该项目依赖,然后就可以使用该starter了。