首页 » Web前端 » phpresource读取技巧_MyBatis 运用Resources读取本钱文件流程解析

phpresource读取技巧_MyBatis 运用Resources读取本钱文件流程解析

访客 2024-11-22 0

扫一扫用手机浏览

文章目录 [+]

// 资源文件路径,MyBatis配置文件String resource = "mybatis-config.xml";// 读取资源文件,获取一个输入流工具InputStream inputStream = Resources.getResourceAsStream(resource);

在 MyBatis 中利用Resource的getResourceAsStream()方法读取资源文件,在getResourceAsStream()方法内部,又去调用了ClassLoaderWrapper的getResourceAsStream方法。

ClassLoaderWrapper类中getResourceAsStream方法的源码如下:

phpresource读取技巧_MyBatis  运用Resources读取本钱文件流程解析

/ 依次利用5种类加载器读取资源文件 @param resource 资源文件路径 @param classLoader 类加载器 @return 资源文件流,可能为null /InputStream getResourceAsStream(String resource, ClassLoader[] classLoader) { // 依次利用5种类加载器 for (ClassLoader cl : classLoader) { // 如果类加载器不为空 if (null != cl) { // 读取资源文件 InputStream returnValue = cl.getResourceAsStream(resource); // 如果上步读取到的内容为空,会在资源文件路径前添加斜杠,然后再次读取资源文件 if (null == returnValue) { returnValue = cl.getResourceAsStream("/" + resource); } // 如果成功读取到资源文件内容,返回资源文件流 if (null != returnValue) { return returnValue; } } } // 如果利用所有的类加载器后仍旧没有成功读取资源文件,则返回null return null;}

个中参数resource为资源文件路径,classLoader为ClassLoaderWrapper中内置的类加载器数组。

phpresource读取技巧_MyBatis  运用Resources读取本钱文件流程解析
(图片来自网络侵删)

利用ClassLoaderWrapper读取资源文件或者加载类时,依次利用自定义类加载器、默认类加载器、线程高下文类加载器、MyBatis类加载器、系统类加载器。
如果类加载器为空或者读取到的内容为空,会连续考试测验利用下一个类加载器。

读取资源文件时,单个类加载器实行流程如下图:

类加载器

ClassLoaderWrapper中封装了5种类加载器,这5种类加载器可以通过getClassLoaders方法获取。
getClassLoaders方法代码如下所示:

/ 获取所有类加载器 @param classLoader 自定义类加载器 @return 所有类加载器 /ClassLoader[] getClassLoaders(ClassLoader classLoader) { return new ClassLoader[] { classLoader, defaultClassLoader, // 当前哨程的高下文类加载器 Thread.currentThread().getContextClassLoader(), // MyBatis类的类加载器 getClass().getClassLoader(), // 系统类加载器 systemClassLoader };}

由上面的代码可以看出,5种类加载器分别为:

自定义类加载器,可能为 null;默认类加载器,可能为 null;线程高下文类加载器;MyBatis类加载器;系统类加载器;

标签:

相关文章

IPv6协议,推动网络发展的新引擎

随着互联网的飞速发展,网络技术日新月异,人们对网络的需求也越来越高。IPv4协议作为互联网发展的基石,已经无法满足日益增长的网络需...

Web前端 2024-12-26 阅读0 评论0

JB语言,引领未来编程潮流的先锋力量

在当今信息技术飞速发展的时代,编程语言作为软件开发的基石,其重要性不言而喻。而在这个领域中,JB语言以其独特的魅力和强大的功能,逐...

Web前端 2024-12-26 阅读0 评论0

IO语言,新时代信息技术发展的关键驱动力

随着互联网技术的飞速发展,我国信息产业正迎来前所未有的机遇。在这个过程中,IO语言作为新时代信息技术发展的关键驱动力,发挥着至关重...

Web前端 2024-12-26 阅读0 评论0

郴州IT行业蓬勃发展,创新驱动,引领未来

近年来,随着互联网技术的飞速发展,我国IT行业迎来了前所未有的机遇。郴州作为中部地区的重要城市,凭借其独特的区位优势和政策扶持,I...

Web前端 2024-12-26 阅读0 评论0