集册 Spring Boot 入门实践 通过@Enable*注解触发Spring Boot配置

通过@Enable*注解触发Spring Boot配置

欢马劈雪     最近更新时间:2020-08-04 05:37:59

718

Spring Boot:定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法:

  1. spring.factories:由Spring Boot触发探测classpath目录下的类,进行自动配置;
  2. @Enable:有时需要由starter的用户触发*查找自动配置文件的过程。

How Do

  • 接着上篇文章的例子,首先将spring.factories中的内容注释掉
#org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
#com.test.bookpubstarter.dbcount.DbCountAutoConfiguration
  • 创建元注解(meta-annotation),即在db-count-starter/src/main/java/org/test/bookpubstarter/dbcount目录下新建EnableDbCounting.java文件。
package com.test.bookpubstarter.dbcount;

import org.springframework.context.annotation.Import;
import java.lang.annotation.*;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(DbCountAutoConfiguration.class)
@Documented
public @interface EnableDbCounting {
}
  • 在BookPubApplication类中删去之前手动创建的DbCountRunner的spring bean,然后用@EnableDbCounting注解修饰BookPubApplication类。
package com.test.bookpub;

import com.test.bookpubstarter.dbcount.EnableDbCounting;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDbCounting
public class BookPubApplication {
    public static void main(String[] args) {
        SpringApplication.run(BookPubApplication.class, args);
    }
}
  • 启动应用程序,设置日志级别为DEBUG

由starter的用户手动触发配置

展开阅读全文