Skip to content

Latest commit

 

History

History
59 lines (37 loc) · 1.2 KB

SpringBoot实现自定义start.md

File metadata and controls

59 lines (37 loc) · 1.2 KB

SpringBoot实现自定义start

实现原理比较简单,主要是依靠META-INF/spring.factories 文件中,k(spring 对应的配置类) 对应的v 自定义的实现类,完成自定义的start

spring.factories 文件中新写如配置

如下

org.springframework.boot.autoconfigure.EnableAutoConfiguration = cn.withmes.springbootmystartconfig.DemoConfigSelect

DemoConfigSelect类如下

@Import(DemoConfig.class)
public class DemoConfigSelect {

    @Bean
    @ConditionalOnMissingBean(value = DemoConfig.class)
    public DemoConfig demoConfig() {
        return new DemoConfig();
    }
}

DemoConfig类如下

@ConfigurationProperties(prefix = "demo")
@Setter
@Getter
public class DemoConfig {
    private String name;

    @Override
    public String toString() {
        return "DemoConfig{" +
                "name='" + name + '\'' +
                '}';
    }
}

所有的核心逻辑已经处理完成,那么如果有一个项目依赖这个项目的话, 项目会去application.properties 里面寻找demo.name 属性

然后注入到DemoCofig Bean 中

代码可参考

https://github.com/q920447939/java-study/tree/master/spring-boot/spring-boot-my-start