深入剖析 Spring Boot 的 SPI 前提!
发布时间:2024-01-13
id getConnection() { System.out.println("this is mysql database"); }}
积大制药
前列腺增生尿不尽怎么治疗效果好
康恩贝肠炎宁颗粒止泻效果怎么样择
宁波汽车抵押贷款
1、在概念设计的META-INF书目下,新增spring.factories档案
2、填写系统性的模块信息,内容如下:
com.skywares.fw.juc.springspi.DataBaseSPI = com.skywares.fw.juc.springspi.DB2DataBase, com.skywares.fw.juc.springspi.MysqlDataBase说明多个发挥作用有别于逗号分隔。
系统性测试类
public class SpringSPITest{ public static void main(String[] args) { List dataBaseSPIs =SpringFactoriesLoader.loadFactories(DataBaseSPI.class, Thread.currentThread().getContextClassLoader()); for(DataBaseSPI datBaseSPI:dataBaseSPIs){ datBaseSPI.getConnection(); } }}输入结果
从请注意之前我们看出,Spring 有别于spring.factories发挥作用SPI与ja发挥作用SPI颇为相同,但是spring的spi形式针对ja的spi同步进行的系统性优化总括如下:
Ja SPI是一个维修服务发放模块相异一个配置档案,配置档案之前存放意味著模块的所有发挥作用类,多个维修服务发放模块相异多个配置档案,所有配置都在services书目下;Spring factories SPI是一个spring.factories配置档案存放多个模块及相异的发挥作用类,以模块仅有限量名作为key,发挥作用类作为value来配置,多个发挥作用类用逗号隔开,大部分spring.factories一个配置档案。那么spring是如何通过加载spring.factories来发挥作用SpI的呢?我们可以通过程式码来进一步系统性。
程式码系统性说明:loadFactoryNames解析spring.factories档案之前登录模块的发挥作用类的仅有限量名,实际发挥作用如下:
说明:获取所有jar自带之前META-INF/spring.factories档案路径,以枚举值前往。遍历spring.factories档案路径,逐个加载解析,整合factoryClass类型的发挥作用类重新命名,获取到发挥作用类的仅有类重新命名后同步进行类的实例话配置,其系统性程式码如下:
说明:实例化是通过太阳光来发挥作用相异的初始化。
作者:剑圣无痕
来源:
。用什么抗衰老产品好积大制药
前列腺增生尿不尽怎么治疗效果好
康恩贝肠炎宁颗粒止泻效果怎么样择
宁波汽车抵押贷款
标签:
相关阅读
-
“阿根廷布什”的经济实验
币制度下跌折磨的巴西不少人来感叹颇有说服压。不小再一但是,罗塞蒂的自由派论调遭到外界的反感反驳。2023年11月初,也就是巴西布什总统大选第二轮表决从在即,世界113名经济体制学家订立
- 2024-02-10你家小狗怕黑吗?这些方法可以帮到小狗,妈妈赶紧学起来
- 2024-02-103000价位段最强手游体验?不是电竞iPad的一加Ace3如何做到的?
- 2024-02-10梅西百货大涨超16% 消息称其获58亿美元溢价私有化收购契约
- 2024-02-10宝妈别不解,结婚后如果在婆家做以下几件事,可能会被婆婆看不起
- 2024-02-10香爆了!荣光X50 GT来了:骁龙8+、5800mAh电池,又一款千元神机?
- 2024-02-10梅西百货大涨超16% 立即称其获58亿美元溢价私有化收购要约
- 2024-02-10妈妈如果具备这4个特征,说明你很有福气,生出的哥哥颜值会更高
- 2024-02-10太突然!它或将正式“退出演出者”
- 2024-02-10三集买就是!回望今年美股交易:所有技术指标信号都不如长期持有
- 2024-02-10孕期,这3种怀孕可能会“早产”,或许要提前“待产”,不妨一看