您现在的位置是:首页 >技术交流 >springboot - spring.factories网站首页技术交流

springboot - spring.factories

lfsun666 2023-07-16 12:00:02
简介springboot - spring.factories

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
在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。