在實際開發過程中,如果有一些公共功能,我們可以單獨封裝,然后配置成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,則實例化成功。