加载、读取资源的方式(底层都是以流的方式获取资源,具体是通过类加载器进行加载,通过流的方式进行读取,从而获取资源)

简介: 加载、读取资源的方式(底层都是以流的方式获取资源,具体是通过类加载器进行加载,通过流的方式进行读取,从而获取资源)

❀ 通过类加载器进行加载,通过流的方式进行读取,从而获取资源

1、java的jdk内置的加载方式:

  • 通过线程Thread(lang包的)获取到类加载,然后以流的方式获取资源:
InputStream inputStream  = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties");
/* 【使用输入流inputStream】 */
private static Properties p = new Properties();
  //加载注册
static {
  try {
    InputStream inStream = Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("db.properties");
    p.load(inStream);
    Class.forName(p.getProperty("driverClassName"));//获取driverClassName的值
  } catch (Exception e) {
    e.printStackTrace();
  }
}


2、mybatis的的加载方式(通过):

  • 通过资源对象Resources(import org.apache.ibatis.io.Resources;)以流的方式获取资源:
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
/* 【使用输入流inputStream】 */
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//创建SqlSessoinFactory会话工厂对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();
//进行数据库操作(CRUD)
User user = session.selectOne("com.shan.hello.UserMapper.get", 2L);
System.out.println(user);
//5、关闭资源
session.close();


2、spring的的加载方式【加载完资源赋值给Resource对象】:

  • 通过classpathResource对象加载资源【classpath是加载字节码(即到项目编译之后的字节码的目录下加载资源)】
Resource resource = new ClassPathResource("applicationContext.xml");
/* 【使用资源对象Resource】 */
Hello hello = null;
//===================================================================
Resource resource = new ClassPathResource("applicationContext.xml");
//创建spring的工厂对象(IoC容器对象)
BeanFactory factory = new XmlBeanFactory(resource);
//从spring IoC 容器(就是factory 工厂对象)中获取指定名称的对象
hello = (Hello)factory.getBean("hello");
//===================================================================
hello.printUsername();
目录
相关文章
|
2月前
|
数据库连接 数据库
实现加载驱动、得到数据库对象、关闭资源的代码复用,将代码提取到相应的工具包里边。优化程序
该博客文章展示了如何通过创建工具类`Connectiontools`实现数据库连接、语句执行以及资源关闭的代码复用,以优化程序并提高数据库操作的效率和安全性。
|
11月前
|
JSON 算法 Java
项目中不同位置资源文件读取的几种方式
项目中不同位置资源文件读取的几种方式
45 0
|
Java Spring 容器
开发20年,你可知道SpringWeb接口资源是如何保存起来的?
我们在浏览器上只输入了一个URL地址,怎么就能访问到这个接口的呢?于是乎就引出了 今天我们要讨论的话题。Spring中的Web接口资源是如何保存起来的?
238 0
|
缓存
读源码长知识 | 动态扩展类并绑定生命周期的新方式
在阅读viewModelScope源码时,发现了一种新的方式。 协程需隶属于某 CoroutineScope ,以实现structured-concurrency,而 CoroutineScope 应
168 0
|
Java Linux
封装一个根据路径获取文件资源的工具类
通常我们最多的场景是从本地资源中读取文件,这个时候我们经常需要注意的是相对路径、绝对路径问题; 除了从本地获取文件之外,从网络中获取文件资源(如图片)也属于相对常见的场景,接下来我们封装一个工具类,可以支持以上各种类型的数据读取
130 0
封装一个根据路径获取文件资源的工具类
|
网络协议 Dubbo NoSQL
服务探活的五种方式
总之一句话总结起来就是Provider节点没有摘除流量前,就无法处理请求了。可以分为三类: 系统异常:如断电、断网、其他硬件故障、或操作系统异常退出 进程异常退出:进程异常退出,端口挂掉,如有注销机制但没来得及注销,如执行了kill -9 进程无法处理请求:端口还在,但服务无法正常响应,如Full GC期间
905 0
服务探活的五种方式
|
安全 编译器 API
C++在资源管理类中提供对原始资源的访问
C++在资源管理类中提供对原始资源的访问
150 0
|
测试技术 图形学
Unity读取AssetBundle资源全教程(所有读取方式)
读取/加载 AssetBundle 资源的多种方式 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2387 0
|
机器学习/深度学习 iOS开发 安全