教你如何自定义SpringBoot中starter启动器

2020-03-02  本文已影响0人  弹钢琴的崽崽

starter:
1、这个场景需要使用到的依赖是什么?
2、如何编写自动配置

3、模式:

1. 创建一个空的工程

2. 添加module-启动器

这是一个启动器

3. 再创建一个模块-自动配置

用Spring Initializr创建

这个模块是做自动配置的

SpringBoot版本1.5.10不引入任何模块

4.启动器模块引入自动配置模块的坐标

删掉自动配置模块中无用的文件

主配置文件,主启动类,pom.xml文件中test依赖,插件依赖都可以删掉

5. 自动配置模块的编写

a. 把所有可以配置的属性绑在HelloProperties类

package com.atguigu.starter;
@ConfigurationProperties(prefix = "atguigu.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;
    }
}

b. HelloService

c. 自动配置类

package com.atguigu.starter;
@Configuration
@ConditionalOnWebApplication //web应用才生效
@EnableConfigurationProperties(HelloProperties.class)//让属性文件生效
public class HelloServiceAutoConfiguration {
    @Autowired
    HelloProperties helloProperties;
    @Bean
    public HelloService helloService(){
        HelloService service = new HelloService();
        service.setHelloProperties(helloProperties);
        return service;
    }
}

d. spring.factories启动加载配置类

让自动配置类生效还得在类路径下写一个文件夹META-INF在此文件夹下放一个文件spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.atguigu.starter.HelloServiceAutoConfiguration

6. 把整个工程装到maven仓库中

第一步:装自动配置包

第二部:装启动器

这样就可以拿坐标引入了

7. 测试工程

新建SpringBoot项目选中web模块,版本还是1.5.10

引入自定义启动器的坐标

a. Controller测试

b.前后缀在配置文件中配置

c. 访问成功

上一篇下一篇

猜你喜欢

热点阅读