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,则实例化成功。