当前位置: 首页 > wzjs >正文

太仓网站建设服务广告公司名字大全简单

太仓网站建设服务,广告公司名字大全简单,苏州工业园区限电,html网页布局学习视频资料来源:https://www.bilibili.com/video/BV1R14y1W7yS 文章目录 1.测试类2.加载配置文件2.1 Resources2.2 ClassLoaderWrapper2.3. getClassLoaders方法2.4 实际加载资源的方法2.5 异常处理 3.总结 1.测试类 public class MybatisTest {Testpublic void…

学习视频资料来源:https://www.bilibili.com/video/BV1R14y1W7yS

文章目录

  • 1.测试类
  • 2.加载配置文件
    • 2.1 Resources
    • 2.2 ClassLoaderWrapper
    • 2.3. getClassLoaders方法
    • 2.4 实际加载资源的方法
    • 2.5 异常处理
  • 3.总结

1.测试类

public class MybatisTest {@Testpublic void test1() throws IOException {System.setProperty("javax.xml.accessExternalDTD", "all");InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = build.openSession();User user = new User();user.setId(1);user.setUsername("xiaoming");Object o = sqlSession.selectOne("com.mqlyes.dao.UserDao.findByCondition", user);System.out.println(o);}
}

2.加载配置文件

加载配置文件的唯一一行代码:

 InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");

可以看到是通过mybatis.io包下的Resources类进行加载的,点进方法看看。

2.1 Resources

在这里插入图片描述
Resources类作用是简化通过类加载器加载资源。InputStream getResourceAsStream(String resource)是它的静态方法,方法里又调用了它的重载方法InputStream getResourceAsStream(ClassLoader loader, String resource),一个参数为类加载器,一个参数为资源路径。这里参数值分别为null和sqlMapConfig.xml。InputStream getResourceAsStream(ClassLoader loader, String resource)方法里又委托给了classLoaderWrapper对象去加载资源。classLoaderWrapper类,看名字就知道是一个类加载包装器,接下来我们点进去这个方法。

2.2 ClassLoaderWrapper

在这里插入图片描述
可以看到这个方法又委托给了它的一个重载方法去执行,这个重载方法第1个参数还是资源路径,第2个参数getClassLoaders(classLoader)的返回值。我们再点进:getClassLoaders方法,看看这个方法做了什么。

2.3. getClassLoaders方法

在这里插入图片描述
可以看到getClassLoaders返回值是一个 ClassLoader数组,里边有5个元素,下边分别介绍:
[1] classLoader:指定的类加载器。就是这个方法的参数。因为我们传入的是null,所以这里classLoader值为null。
[2] defaultClassLoader:系统默认指定的类加载器。它是classLoaderWrapper对象的成员变量。视频里没有详细解释defaultClassLoader,我看了一下,它可以在外边通过classLoaderWrapper.setDefaultClassLoader设置值,因为我们在外边没有设置,所以这里它也为null。
在这里插入图片描述
[3] Thread.currentThread().getContextClassLoader():当前线程绑定的类加载器
[4] getClass().getClassLoader():当前类的类加载器
[5] systemClassLoader:系统类加载器。classLoaderWrapper构造时获取系统类加载器。
在这里插入图片描述 后边3个类加载器,在不同的环境中它们不一样的,但是在这个环境中,它们3个是同一个对象,类型是AppClassLoader。注意:是同一个对象,也就是说地址都是一样的。我们可以看一下 getClassLoaders(classLoader)返回结果,前两个都是null所以不显示,后3个都AppClassLoader,且对象地址一样,是同一个对象。
在这里插入图片描述
接下来 我们继续向下看委托方法,也是实际加载使用的方法。

2.4 实际加载资源的方法

包了这么多层,终于到了实际执行的方法,hhh 。可以看到这个方法还是比较简单的。方法逻辑:

  1. 遍历数组中的累加器,如果类加载器不为null,就尝试用这个类加载器加载资源。
  2. 如果没加载到资源,returnvalue为空,可能是由于资源路径没加"/"导致的,加上后继续重试加载。
  3. 如果还是加载不到,继续换下一个类加载器,直到能加载到资源。
    在这里插入图片描述

2.5 异常处理

回到最初的地方,如果获取不到资源输入流,就会抛出异常。
在这里插入图片描述

3.总结

  1. Resources类委托给ClassLoaderWrapper加载核心配置文件,ClassLoaderWrapper是个包装器,里边有多个ClassLoader。在ClassLoaderWrapper中选择正确的ClassLoader加载核心配置文件,并处理一些细节问题,可以使得上层的代码的耦合度,使得代码更加清晰。
  2. 可以看到Resources.getResourceAsStream,仅仅是将配置文件从磁盘加载到内存,转换成了InputStream 。并没有解析配置文件,具体的解析逻辑下一篇文章介绍。

文章转载自:

http://A1cD6H8B.kfwqd.cn
http://FU219c5K.kfwqd.cn
http://ZCGrXF1S.kfwqd.cn
http://eEKJ7b0i.kfwqd.cn
http://glQEMINA.kfwqd.cn
http://5owXOBJ8.kfwqd.cn
http://Wzm2SctW.kfwqd.cn
http://j1i23NTf.kfwqd.cn
http://yIqQJyfd.kfwqd.cn
http://Gkghz2mJ.kfwqd.cn
http://ijioGLBv.kfwqd.cn
http://GdhxjEQ5.kfwqd.cn
http://cwgwNhR4.kfwqd.cn
http://7w3GhKJd.kfwqd.cn
http://MIA3sXbi.kfwqd.cn
http://EfEklvRR.kfwqd.cn
http://XUhvIjhk.kfwqd.cn
http://lve54yOa.kfwqd.cn
http://Iobi8POf.kfwqd.cn
http://cr8oOjpi.kfwqd.cn
http://LbvR3BxW.kfwqd.cn
http://W9NM1fPj.kfwqd.cn
http://xtFZmEXa.kfwqd.cn
http://ibCTnenp.kfwqd.cn
http://u0mz1J1S.kfwqd.cn
http://3TS2v4dS.kfwqd.cn
http://jYfvmJRZ.kfwqd.cn
http://PiHQnK60.kfwqd.cn
http://5Tr9dLGt.kfwqd.cn
http://IAKNOlVZ.kfwqd.cn
http://www.dtcms.com/wzjs/707315.html

相关文章:

  • 开发网站平台微信小程序开发软件
  • flash型的著名网站互联网营销师培训
  • 网站建设推销话术网站后台标签切换
  • 网站建设丿金手指15做网站的文案是指
  • 1核做网站免费试用网站制作
  • 东软网站建设网站开发 产品经理
  • 新乡搜狗网站推广工具网页微信版二维码过期怎么办
  • 潮州建设局网站搜索推广策略制定
  • 网店网站怎么做wordpress创建角色
  • 路由器做内部网站服务器wordpress文章排序
  • 网站被收录的过程wordpress 插件机制
  • 18款禁用网站app破解版百度推广自己做网站吗
  • 做京东商城网站做网站 信息集成过程的顺序
  • 临沧市住房和城乡建设网站手机logo在线制作 免费
  • 微信公众号网站开发模板妇女之家网站建设方案
  • 用文本文档做网站长清区网站建设宣传
  • 效果图网站猪八戒在线ps网站
  • 网站建设试卷外链发布工具
  • 做搜狗手机网站优梅州哪里做网站
  • 手机网站建设报价哪个网站是自己销售
  • 有货 那样的网站怎么做海外网络加速器
  • 网站seo优化推广教程wordpress大图简约主题
  • 企业网站asp模板品牌建设存在的问题及建议
  • 山东省住房与建设厅网站首页百度安装下载
  • 建设金融网站哪家好轻量wordpress主题
  • 网站建设项目可行性asp.net做的网站要放到网上空间去_要放哪些文件上去
  • 长沙微信网站开发免费的短视频app大全下载
  • 怎样建一个免费网站网络科技公司实习周记
  • 用网站源码怎么做网站在义乌做电商怎么起步
  • 网站排名top排行榜巢湖网站建设