spring.factories 的基本使用
spring.factories
的基本作用
在若依-微服务版的源码学习中,发现项目中多次用到了 spring.factories
。因此记录一下自己的学习总结:
参考博客:
spring.factories
的具体原理可以参考:https://www.jianshu.com/p/00e49c607fa1spring.factories
的基本作用可以参考:https://www.cnblogs.com/huanghzm/p/12217630.html
前提:
在微服务项目中,存在这多个不同的子模块,这些子模块可能是一个独立的Spring Boot
项目,也可能是普通的maven
项目。
问题提出:
我们通常有这么一种需求,将多个子模块都可能用到的组件从单个子模块中抽离出来组成一个公共模块。比如将所有子模块的接口抽离,抽离出来的公共部分也可能存在着需要注入 spring
容器中的组件。
那么这样就引出了一个新的问题。我们都知道 Spring Boot
的自动扫描包的扫描范围是 SpringBootApplication
启动类所在的包以及子包目录下。那么我们抽离出来的公共部分在 SpringBoot
项目启动时就不可能会被自动扫包。
问题解决:
- 在
SpringBootApplication
启动类中添加@import
注解。 - 使用
spring.factories
。
主要介绍 spring.factories
:
spring.factories
文件需要创建在 resources/META-INF
路径下。
main
|-- resources
| └- META-INF
| └-- spring.factories
spring.factories
文件是通过 Properties
解析得到的,所以文件内容格式通常是安装以下方式:
com.xxx.interface=com.xxx.classname
如果一个接口希望配置多个实现类,可以使用 ",
"进行分割。
在若依-微服务版中同样是通过 spring.factories
解决:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com.ruoyi.system.api.factory.RemoteUserFallbackFactory,\com.ruoyi.system.api.factory.RemoteLogFallbackFactory, \com.ruoyi.system.api.factory.RemoteFileFallbackFactory
通过 spring.factories
文件的方式,在启动服务时(启动SpringBoot
项目)只要引入的包即可实现第三方组件自动扫包。
spring.factories 的基本使用相关推荐
- SpringBoot解耦的扩展机制 Spring Factories介绍及使用
一.什么是 SPI机制 Spring Boot中有一种非常解耦的扩展机制:Spring Factories.这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的.SPI的全名为Service P ...
- Spring Boot 之spring.factories
首先抛出一个问题:如果想要被Spring容器管理的Bean的路径不再Spring Boot 的包扫描路径下,怎么办呢?也就是如何去加载第三方的Bean 呢? 有两种方式可以解决: 这里我们使用Swag ...
- spring.factories 的妙用
现象 在阅读 Spring-Boot 相关源码时,常常见到 spring.factories 文件,里面写了自动配置(AutoConfiguration)相关的类名,因此产生了一个疑问:"明 ...
- openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
我们在若依的: ruoyi-api-system模块中,可以看到在 com.ruoyi.system.api包下,有各种的 RemoteUserService等,然后我防着写了个自己的,但是发现,调用 ...
- Spring Boot 之 spring.factories的用法
原因 为什么要使用,因为在程序开发中,可能包名不一样,pom依赖的很多的jar 他们是如何把这些类进行注入到spring容器中的呢. 所以springboot就提出了spring.factories ...
- SpringBoot加载spring.factories的价值
SpringBoot加载spring.factories的价值 在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factor ...
- spring.factories详解
在Spring Boot中有一种非常解耦的扩展机制:Spring Factories.这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的. Java SPI机制SPI的全名为Service P ...
- Spring Factories机制
Spring Factories机制简述 Spring Factories机制和Java SPI的扩展机制类似,Spring Boot采用了spring.factories的扩展机制,在很多sprin ...
- 简单介绍【spring.factories】的使用
前言 starter的使用在springboot项目中可以说是非常常见,可能有些朋友在使用springboot项目的时候只是在网络上找了一篇如何创建一个springboot,如何又和mybatis或m ...
最新文章
- 交换和路由的区别?VLAN的特点?
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
- 易想商城V4.7.1 过期到期解决办法
- PHP获取浏览器版本号
- matlab内维尔差值代码,计算方法上机练习数值积分(包括两次作业).PDF
- js中this和回调方法循环-我们到底能走多远系列(35)
- centos7下SVN服务器搭建
- Ambari--主机管理
- 阿里发力线下渠道,腾讯京东该如何打破其流量优势?
- 常用滤波算法(转载)
- Java实现贪吃蛇大作战小游戏(完整版)
- 新版PMP考试解题技巧有哪些?总结在这里
- java工程师和全栈工程师_java全栈工程师 - 北大青鸟东莞金码学校官网
- X1000代码烧写配置
- 街头篮球 服务器中断,win7系统下玩街头篮球卡机如何解决
- js中utf8和中文互转的方法
- 校园招聘的秋招和春招有什么区别?
- Ubuntu下搭建SVN与Apache权限控制
- python编程从入门到实践django-首页
- 2023电工杯数学建模竞赛A题思路解析+代码+论文