loadFactoryNames

/** * 从spring.factories 文件中找出 factoryClass 参数指定类型的类全名*/
public static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";
public static List<String> loadFactoryNames(Class<?> factoryClass, ClassLoader classLoader) {String factoryClassName = factoryClass.getName();try {// 获取 classpath下所有的 spring.factories 文件Enumeration<URL> urls = (classLoader != null ? classLoader.getResources(FACTORIES_RESOURCE_LOCATION) :ClassLoader.getSystemResources(FACTORIES_RESOURCE_LOCATION));List<String> result = new ArrayList<String>();// 遍历classpath下所有的 spring.factories 文件while (urls.hasMoreElements()) {//我的classpath下所有的 spring.factories 文件://file:/D:/.../classes/META-INF/spring.factories//jar:file:/D:/.../spring-boot-1.5.9.RELEASE.jar!/META-INF/spring.factories//jar:file:/D:/.../spring-boot-autoconfigure-1.5.9.RELEASE.jar!/META-INF/spring.factories//jar:file:/D:/.../spring-beans-4.3.13.RELEASE.jar!/META-INF/spring.factoriesURL url = urls.nextElement();// 将文件封装为类Properties properties = PropertiesLoaderUtils.loadProperties(new UrlResource(url));// 从properties 中获取所有 factoryClassName 指定的类型String factoryClassNames = properties.getProperty(factoryClassName);// 放入 List<String> resultresult.addAll(Arrays.asList(StringUtils.commaDelimitedListToStringArray(factoryClassNames)));}return result;}catch (IOException ex) {throw new IllegalArgumentException("Unable to load [" + factoryClass.getName() +"] factories from location [" + FACTORIES_RESOURCE_LOCATION + "]", ex);}
}

附录-SpringFactoriesLoader相关推荐

  1. 附录G Netty与NettyUtils

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/beliefer/article/details/77450134 注:本文是为了配合<Spar ...

  2. 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(一)

    <写给大家看的C语言书(第2版)>是邮电社图灵公司引进翻译的一本C语言入门书,这是一本垃圾书.搞不清图灵为什么引进了这样一本垃圾书.该书作者基本不懂得C编程技术,书中误导.错谬比比皆是. ...

  3. ovirt官方安装文档 附录F

    附录F:在单独的机器上安装Websocket代理 websocket代理允许用户通过noVNC和SPICE HTML5控制台连接到虚拟机.noVNC客户端使用websocket传递VNC数据.但是,Q ...

  4. 附录C 编译安装Hive

    如果需要直接安装Hive,可以跳过编译步骤,从Hive的官网下载编译好的安装包,下载地址为http://hive.apache.org/downloads.html . C.1  编译Hive C.1 ...

  5. dsp28335读地址c语言写法,dsp 28335 教程 附录4 dsp的c语言.ppt

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp嵌入式开发 dsp 28335 教程 附录4 dsp的c语言.p ...

  6. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-附录-LMI工具箱介绍

    第3章 回到目录 第5章 附录-LMI工具箱介绍 A.1 线性矩阵不等式及相关术语 A.1 线性矩阵不等式及相关术语

  7. 《Spring Boot极简教程》附录4 Java编程简史

    附录4 Java编程简史 从GOTO到OOP 在20世纪60年代,软件曾出现过严重危机,由软件错误而引起的信息丢失.系统报废事件屡有发生.为此,1968年,荷兰E.W.Dijkstra提出了程序设计中 ...

  8. FreeBSD 6.0架设管理与应用-附录B 制作FreeBSD安装光盘

    附录B 制作 FreeBSD 安装光盘 如果您想要自行制作 FreeBSD 安装光盘,您可以自各大 FTP 站台下载 FreeBSD 回来自行烧录.FreeBSD 各个 RELEASE 版本推出时,都 ...

  9. [导入]php 安全基础 附录C. 加密

    附录C. 加密 作为一本相关安全方面的书,通常加密是需要提及的话题.我之所以在本书的主体部分忽略了加密问题,是因为它的用途是狭窄的,而开发者应从大处着眼来考虑安全问题.过分依赖于加密常常会混淆问题的根 ...

最新文章

  1. 如何挖掘网站的核心关键词?
  2. 51nod 1499 (最小割)
  3. LwIP应用开发笔记之八:LwIP无操作系统HTTP客户端
  4. ADODB.Stream 错误 '800a0bbc' 写入文件失败
  5. 耐思尼克的“建站宝盒”怎么样呀?
  6. 代理模式---论坛权限控制代理
  7. php 视频分割,如何把一个视频分成两段或多段 视频切割软件
  8. dev c++源文件未编译
  9. 爱了!这18个 Python 高效编程技巧真香!
  10. PyCharm 和 VScode 我更适合用哪个?
  11. 导师和学生之间应该多说实话
  12. SVN版本冲突原因以及详细解决办法
  13. 运维之查看服务器cpu、内存、硬盘
  14. 多智能体强化学习综述-Lucian Busoniu
  15. 极客时间 算法训练营 毕业总结
  16. 安大计算机学院李伟教授,安徽大学高教所研究生导师聘任仪式在我校举行
  17. Linux下shell种类:/etc/shells,/etc/passwd文件,Bash shell的介绍
  18. 贴片灯背光源的LED灯珠正负极反了怎么办?
  19. 水经注离线三维地球触摸GIS系统
  20. Scavenger:在不同的paste网站上搜索泄漏的凭据

热门文章

  1. Web 端 js 导出csv文件(使用a标签)
  2. html 3d坐标,HTML3D
  3. java 9999 符号_按格式生成序号,如0001,0002...9999
  4. eclipse php链接mysql_eclipse怎么连接mysql
  5. Python的第三方库openpyxl
  6. VScode使用Git拉取代码到本地提示“在签出前,请清理存储工作树”
  7. Python函数式编程之Map
  8. 文件在IDEA中已进行Git的Commit操作,使其从暂存区提交到本地仓库,但是未Push到远程仓库,此时进行Pull操作出现代码冲突
  9. linux段错误吐核怎么办,CentOS命令
  10. mysql定时异地备份_MYsql 异地备份脚本