博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-core-SpringFactoriesLoader类
阅读量:4304 次
发布时间:2019-05-27

本文共 973 字,大约阅读时间需要 3 分钟。

好遗憾啊,不就的将来就要辞职了,就要离开朝思暮想的马银霜了,好可惜,太可惜了,我真的好喜欢你----2021.01.26

本类是spring自动装配最为核心的类

1.loadFactoryNames方法

public static List
loadFactoryNames(Class
factoryType, @Nullable ClassLoader classLoader) { String factoryTypeName = factoryType.getName(); return loadSpringFactories(classLoader).getOrDefault(factoryTypeName, Collections.emptyList());}

该方法看似复杂其实目的很简单,就是从jar包下META-INF文件夹下的spring.factories文件(可以理解成properties文件)中,读取key值,拿到value,因为多个value值的时候spring会用逗号分开,所以该类自动分割逗号,将多个值放到一个list里并且返回,下面举例

比如spring.factories文件中的内容是这样子的

// 注意,等号左右都必须是全限定名,而不是simple类名com.xx.name=com.xx.ys1,com.xx.ys2,com.xx.ys3

那么我们必须有一个类,这个类必须叫Name.java

package com.xxpublic class Name{}

然后执行代码

ClassLoader cl =  Thread.currentThread().getContextClassLoader();List
names=SpringFactoriesLoader.loadFactoryNames(Name.class, cl);

此时names的size=3,里面的值分别是ys1,ys2和ys3

NOTE:实际spring在使用当中,name通常都是一个接口的全限定名,而value则是该接口的部分实现类的全限定名,这些实现类,就是spring的基础设施类,spring会在需要这些实现类的地方,根据全限定名通过反射的方式创建这些类

转载地址:http://cvhws.baihongyu.com/

你可能感兴趣的文章
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day05
查看>>
学习笔记_vnpy实战培训day06
查看>>
Python super钻石继承
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>