使用SpringBoot自定义starter详解

目录一、新建一个工程二、xxx-sprig-boot-starter-configure模块自动配置编码2.1 服务层编码2.2 属性配置类编码2.3 starter自动配置类编码2.4 添加自动配置类到META-INF路径下2.5 将工程安装到本地三、新建一个工程测试自定义starter3.1 编写controller层3.2 编写配置文件四、测试结果4.1 使用starter默认配置4.2 使用自定义配置

一、新建一个工程

工程由xxx-sprig-boot-starterxxx-sprig-boot-starter-configure两个模块组成;

xxx-sprig-boot-starter模块

只用来做依赖导入 依赖于 xxx-sprig-boot-starter-configure模块,没有实际代码

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.ander</groupId>    <artifactId>ander-spring-boot-starter</artifactId>    <version>1.0-SNAPSHOT</version>    <!--依赖ander-spring-boot-starter-configure工程-->    <dependencies>        <dependency>            <groupId>com.ander</groupId>            <artifactId>ander-spring-boot-starter-configure</artifactId>            <version>0.0.1-SNAPSHOT</version>        </dependency>    </dependencies></project>

xxx-sprig-boot-starter-configure模块

专门自动配置模块 依赖于spring-boot-starter-web

<?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.3.10.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.ander</groupId>    <artifactId>ander-spring-boot-starter-configure</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>ander-spring-boot-starter-configure</name>    <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-web</artifactId>        </dependency>    </dependencies></project>

二、xxx-sprig-boot-starter-configure模块自动配置编码

2.1 服务层编码

/** * Service层 * * @Author: Ander * @Date: 2021-05-04 */public class HelloService {    private HelloServiceProperties helloServiceProperties;    public String helloService(String name) {        return helloServiceProperties.getPrefix() + " "+ name + " " + helloServiceProperties.getSuffix();    }    public HelloServiceProperties getHelloServiceProperties() {        return helloServiceProperties;    }    public void setHelloServiceProperties(HelloServiceProperties helloServiceProperties) {        this.helloServiceProperties = helloServiceProperties;    }}

2.2 属性配置类编码

/** * 属性配置类 * * @Author: Ander * @Date: 2021-05-04 */@ConfigurationProperties(prefix = "com.ander")public class HelloServiceProperties {    private String prefix = "hi";    private String suffix = "hello world";    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;    }}

2.3 starter自动配置类编码

@EnableConfigurationProperties({HelloServiceProperties.class})作用:让xxxProperties生效加入到容器中

/** * 自定义starter自动配置类 * * @Author: Ander * @Date: 2021-05-04 */@Configuration@ConditionalOnWebApplication // 指定web应用才生效@EnableConfigurationProperties({HelloServiceProperties.class})public class HelloServiceAutoConfigure {    @Autowired    private HelloServiceProperties helloServiceProperties;    @Bean    public HelloService helloService() {        HelloService helloService = new HelloService();        helloService.setHelloServiceProperties(helloServiceProperties);        return helloService;    }}

2.4 添加自动配置类到META-INF路径下

2.5 将工程安装到本地

注意先安装xxx-spring-boot-starter-configure,再安装xxx-spring-boot-starter

三、新建一个工程测试自定义starter

3.1 编写controller层

/** * starter测试控制类 * * @Author: Ander * @Date: 2021-05-05 */@RestControllerpublic class StarterTestController {    @Autowired    private HelloService helloService;    @GetMapping("hello")    public String hello(String name) {        return helloService.helloService(name);    }}

3.2 编写配置文件

server.port=8888com.ander.prefix=HIcom.ander.suffix=HELLO WORLD

四、测试结果

4.1 使用starter默认配置

4.2 使用自定义配置

到此这篇关于使用Spring Boot自定义starter详解的文章就介绍到这了,更多相关Spring Boot自定义starter内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

往往为了自己的不能失败,而处心积虑前怕狼后怕虎,

使用SpringBoot自定义starter详解

相关文章:

你感兴趣的文章:

标签云: