springboot源码解析(3),自定义starter

  1. 首先创建一个空项目
pom中添加依赖

        
            org.springframework.boot
            spring-boot-autoconfigure
            2.3.0.RELEASE
        
        
            org.springframework.boot
            spring-boot-configuration-processor
            2.3.0.RELEASE
            true
        

//----------------------------------✂-----------------------------------------
上面两个是必须要用的,web主要是我们自己调试用的
        
            org.springframework.boot
            spring-boot-starter-web
            2.3.0.RELEASE
        
  1. 创建配置类AutoConfig,这个主要用于后面配置扫描入口
//注册到ioc容器
@Configuration
//配置扫描包
@ComponentScan("com.hcq.test")
//开启自动配置
@EnableConfigurationProperties
public class AutoConfig {
}

再创建一个配置类
@ConfigurationProperties(prefix = "hcq.test")
@Component
public class InfoConfig {
    private String name = "hcq";
    private Integer age = 25;

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

创建用于提供服务的类
@Service
public class HcqService {

    @Autowired
    private InfoConfig infoConfig;

    public String getHelloWorld() {
        return "hello world";
    }

    public String getAge() {
        return infoConfig.getName();
    }
}

  1. 在resource里面添加目录META-INF.spring.factories
增加配置org.springframework.boot.autoconfigure.EnableAutoConfiguration
后面配上面是扫描入口类
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.hcq.test.AutoConfig

注意
一般启动类都是org.springframework.boot.autoconfigure.也可以是org.springframework.boot.env.EnvironmentPostProcessor后置处理器等
他会根据你配置的类型来获取文件,如果类型不对则会报错
比如配的是org.springframework.boot.env.EnvironmentPostProcessor 后面写的是com.hcq.test.AutoConfig
类型不同 则会报错


目录结构为


你可能感兴趣的:(springboot源码解析(3),自定义starter)