为什么要在resources下面的META-INF中配置spring.factories
2023-09-11 14:22:43 时间
因为如果是公共的模块(base-common)里面的一些配置,比如对数据源的配置,虽然别的服务模块依赖公共模块,但是在别的服务启动的时候并不会扫描到base-common下的组件。
案例:
//新建一个Test类 public class Test { public Test() { System.out.println("Test加载"); } }
如果我们要想将这个Test类注入到IOC中,以前的方式只能写到启动类的包下面,或者在启动类中加上@ComponentScan(包名)
现在我们可以使用spring.factories来解决这个问题,在resources下面创建文件夹META-INF,再创建一个文件spring.factories
编辑spring.factories文件并写入配置
# Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.test.Test
配置原理
SpringFactoriesLoader载荷从和实例化给定类型的工厂“META-INF / spring.factories”文件,其可存在于在类路径多个JAR文件。
该spring.factories文件必须为Properties格式,其中的关键是接口或抽象类的完全合格的名称和值是一个逗号分隔的实现类名的列表。
如:example.MyService=example.MyServiceImpl1,example.MyServiceImpl2。其中example.MyService是接口的名称,和MyServiceImpl1和MyServiceImpl2两种实现。
相关文章
- Spring MVC 处理一个请求的流程分析
- 挺详细的spring+springmvc+mybatis配置整合|含源代码
- spring boot下为配置属性值加密的正确姿势
- spring-cloud: eureka之:ribbon负载均衡自定义配置(二)
- spring mvc: 生成RSS源
- spring: ?.运算符
- spring: 在Spring应用中使用JDBC(使用profiles选择数据源/使用基于JDBC驱动的数据源)
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)------转帖
- spring属性注入DI
- 18-spring学习-利用Annotation配置AOP
- 03-spring学习-自动装配
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- [Java Spring MVC] @PathVariable, @Vallidated, @PostMapping & @ResponseStatus
- spring boot 配置文件占位符和多环境配置 [七]
- Spring Cloud Stream
- Spring Boot (九): 微服务应用监控 Spring Boot Actuator 详解
- Spring Boot (七): Mybatis极简配置
- spring boot配置dubbo(properties)
- Spring Boot连接多个Redis库配置方案及代码示例
- Spring学习-1 框架总览
- Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- Mongodb3.0.5副本集搭建及spring和java连接副本集配置
- 学习Spring Boot:(二十二)使用 AOP
- 学习Spring Boot:(十三)配置 Shiro 权限认证
- spring boot配置dubbo注意事项
- 解决com.alibaba.fastjson.JSONException: write javaBean error问题以及解决Spring Boot加入Shiro导致spring aop失效的问题
- 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
- spring cloud :五、分布式配置中心(spring cloud config)
- Spring Cloud Alibaba 链路追踪 - 附:Maven Assembly 插件
- Spring Cloud Alibaba-Sentinel-使用熔断器防止服务雪崩
- 【Spring源码学习】spring IOC容器管理
- spring data jpa实现数据作废(删除)功能