SpringBoot自动化配置的原理:
默认装配启动类starter,它会扫描META-INF/spring.factories。
下面是spring.factories文件的内容格式,根据它我们可以清晰地了解Map<String,List<String>>中都存了些什么。其中Key值为:org.springframework.boot.autoconfigure.EnableAutoConfiguration,Value值为后面的各种XXXAutoConfiguration类。他会把key为org.springframework.boot.autoconfigure.EnableAutoConfiguration的所有的值都加载,得到一些全类名的列表,在启动时,会自动反射Bean并加载到spring容器中。
META-INF下文件的使用:
在Java项目中,META-INF目录通常用于存放一些配置文件和资源文件。在Spring框架中,META-INF目录下的spring文件夹和spring.factories文件都用于配置Spring框架的扩展点。
1.META-INF/spring文件夹:
(1)META-INF/spring文件夹下可以放置多个XML配置文件,这些文件会被Spring框架自动加载并解析。
(2)这些XML配置文件可以包含各种Spring相关的配置,如Bean定义、AOP配置、事务配置等。
(3)通常,开发者可以将自定义的Spring配置文件放置在这个目录下,以便Spring框架能够自动加载并应用这些配置。
spring阿里云文件上传功能 做成自动配置依赖:
2.META-INF/spring.factories文件
(1)META-INF/spring.factories是一个文本文件,用于声明Spring框架的扩展点。
(2)这个文件中定义了一些特定的Spring工厂类,这些工厂类会在Spring框架启动时被自动加载和实例化。
(3)这些工厂类可以用于注册自定义的Spring组件,如BeanPostProcessor、BeanFactoryPostProcessor等。
(4)通过在spring.factories文件中配置这些工厂类,可以扩展Spring框架的功能和行为。
spring自动化配置降级服务: