spring.factories 是什么?
spring.factories 是 Spring Boot 自动配置的核心机制之一,它用于自动注册 Spring Boot 中的各种自动配置类,从而实现自动化配置的目的。在 Spring Boot 应用程序启动时,Spring Boot 会自动扫描 classpath 下的 META-INF/spring.factories 文件,并根据其中配置的 org.springframework.boot.autoconfigure.EnableAutoConfiguration 实现类自动加载对应的自动配置类。
具体来说,当我们需要自定义 Spring Boot 应用程序的自动配置时,只需要创建一个标注有 @Configuration 注解的类,再在其中定义需要自动配置的 Bean,然后将该类的全限定名添加到 META-INF/spring.factories 文件中的 org.springframework.boot.autoconfigure.EnableAutoConfiguration 配置项中,就可以实现自动配置了。
需要注意的是,如果自定义的自动配置类不在 Spring Boot 启动类所在的包或其子包下,需要将其添加到 spring.factories 文件中,否则 Spring Boot 在启动时将无法自动加载该自动配置类。
那就是这样的咯:需要的配置类与启动类不在同一包路径下
启动类构造方法注入:
@SpringBootApplication
public class BootAutoconfigApplication {
public BootAutoconfigApplication(OuterConf outerConf) {
System.out.println(outerConf);
}
public static void main(String[] args) {
SpringApplication.run(BootAutoconfigApplication.class, args);
}
}
启动:只会扫描与启动类同一目录下的bean
那我非要呢?
那就要用到spring.factories了
1、建文件
2、自定义自动配置类
# 自定义自动配置类
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.lfsun.outerpackage.OuterConf
3、再启动:成功启动并获取到该bean