01.引入依賴
<!--自定義starter的核心依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.7.2</version>
</dependency>
02.創(chuàng)建標記(只有引用此starter的應用中掃描到標記類才開啟自動配置)
public class WorkflowConfigMarker {
}
03.配置開關(添加配置開關注解,才會掃描到標記類才會開啟自動配置)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(WorkflowConfigMarker.class)
public @interface EnableWorkflowRegisterServer {
}
04.配置容器(只有掃描到標記類時配置容器才會生效 ,才會注入bean)
@Configuration
@ConditionalOnBean(WorkflowConfigMarker.class)
public class WorkflowAutoConfiguration {
static {
System.out.println("WorkflowAutoConfiguration init ...");
}
@Bean
public WorkflowProperties simpleBean(){
return new WorkflowProperties();
}
}
05.配置參數(shù)(配置參數(shù)可以在引用此starter項目的配置文件中配置)
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "workflow")
public class WorkflowProperties {
private String configurationParameter1;
private String configurationParameter2;
public String getConfigurationParameter1() {
return configurationParameter1;
}
public void setConfigurationParameter1(String configurationParameter1) {
this.configurationParameter1 = configurationParameter1;
}
public String getConfigurationParameter2() {
return configurationParameter2;
}
public void setConfigurationParameter2(String configurationParameter2) {
this.configurationParameter2 = configurationParameter2;
}
}
06.創(chuàng)建文件(創(chuàng)建 :/ resource/ META-INF/ spring.factories 文件)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.lagou.configuration.WorkflowAutoConfiguration