springboot源码解析(3),自定义starter
2021-08-27 本文已影响0人
hcq0514
- 首先创建一个空项目
pom中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.3.0.RELEASE</version>
<optional>true</optional>
</dependency>
//----------------------------------✂-----------------------------------------
上面两个是必须要用的,web主要是我们自己调试用的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
- 创建配置类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();
}
}
- 在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
类型不同 则会报错
目录结构为