简单记录一下步骤,原理可以查看其他帖子:
- 在自定义的包比如com.test内新建一个类,比如叫DbCountAutoConfiguration.java,类名上加@Configuration
- 在该类内通过使用@Bean来加载该starter需要的加载的Bean。若允许用户在自己的工程内覆盖该类定义的@Bean,则根据情况在加载Bean的时候增加@ConditionalOnMissingBean或者@ConditionalOnMissingClass
- 在该工程的src/main/resources/META-INF目录内查看是否有spring.factories文件。
- 如果这个文件没有就新建一个,在该文件内增加一行:org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.test.DbCountAutoConfiguration
- 如果这个文件存在并且已经有org.springframework.boot.autoconfigure.EnableAutoConfiguration=xxx。则在最后增加自建的这个包名。跟前面的用英文逗号分隔: org.springframework.boot.autoconfigure.EnableAutoConfiguration=xxx,com.test.DbCountAutoConfiguration
- 建一个Annotation:
@Target(ElementType.TYPE)
@Retension(RetentionPolicy.RUNTIME)
@Import(DbCountAutoConfiguration.class)
@Documented
public @interface EnableDbCounting {
}
7. 在SpringBoot的启动类上增加@EnableDbCounting,即可启动该starter。(如果不做3,4,5)