springboot分析——自定义启动类

  

  在实际开发过程中,如果有一些公共功能,我们可以单独封装,然后配置成starter启动类,其他的项目需要使用时,主要

只要依赖开启就可以了。下面我们自定义一个自动配置启动类。

一:自定义启动类

在工程的resources/META-INF目录下,创建一个spring.factoris,添加如下配置:

 

 

自动配置类StudyAutoConfig:

@Configuration
@ConditionalOnClass(PersonConfig.class)
@EnableConfigurationProperties({PersonConfigProperties.class})
public class StudyAutoConfig {

	@Autowired
	private PersonConfigProperties personConfigProperties;

	@Bean
	@ConditionalOnMissingBean
	public PersonConfig personConfig(){
		PersonConfig personConfig = new PersonConfig();
		personConfig.setId(personConfigProperties.getId());
		personConfig.setName(personConfigProperties.getName());
		return personConfig;
	}

}

 

@Data
@ConfigurationProperties(prefix = "person")
public class PersonConfigProperties {
	private String id;
	private String name;
}

  

person.id=111
person.name=study

 

启动服务,使用页面调用测试:

 

 

自定义condition

 

 

public class MyCondition implements Condition {

	@Override
	public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
		return false;
	}

}

  

如果返回false,personConfig实例化就会失败,如果为true,则实例化成功。

 

 

 

 

 

 

 

posted @ 2020-07-13 14:29  warrior1234  阅读(1864)  评论(0编辑  收藏  举报