一: 理解根目录

<value>classpath*:/application.properties</value>
<value>classpath:/application.properties</value>

  

这里的classpath怎么理解呢,其实指的就是根目录,关于根目录,需要了解:

(1): src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。

(2): WEB-INF/classes目录存放src目录java文件编译之后的class文件、xml、properties等资源配置文件,这是一个定位资源的入口。

(3): 引用classpath路径下的文件,只需在文件名前加classpath:

  <param-value>classpath:applicationContext-*.xml</param-value> 
  <!-- 引用其子目录下的文件,如 -->
  <param-value>classpath:context/conf/controller.xml</param-value>

(4): lib和classes同属classpath,两者的访问优先级为: lib>classes。

(5): classpath 和 classpath* 区别:

classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。

二:this.getClass().getResourceAsStream和this.getClass().getClassLoader().getResourceAsStream的区别

(1)关于getClass().getClassLoader()

InputStream is  = this.getClass().getClassLoader().getResourceAsStream("helloworld.properties");

其中this.getClass()和getClassLoader()都是什么意思呀.?

 getClass():取得当前对象所属的Class对象   
 getClassLoader():取得该Class对象的类装载器

public void readProperty(){
//从当前类所在包下加载指定名称的文件,getClass是到当前列
InputStream in = this.getClass().getResourceAsStream("biabc.properties");
// 从classpath根目录下加载指定名称的文件,这是因为/即代表根目录
// InputStream in = this.getClass().getResourceAsStream("/abc.properties");
//从classpath根目录下加载指定名称的文件,这是因为getClassLoader就会到根目录上
// InputStream in = this.getClass().getClassLoader().getResourceAsStream("abc.properties"); Properties properties = new Properties();
// 使用properties对象加载输入流
try {
properties.load(in);
} catch (IOException e) {
e.printStackTrace();
}
//获取key对应的value值
System.out.println(properties.getProperty( "a"));
}

文章摘自: https://blog.csdn.net/h2604396739/article/details/83860334

理解根目录,classpath, getClass().getResourceAsStream和getClass().getClassLoader().getResourceAsStream的区别的更多相关文章

  1. this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream 文件地址获取

    本文部分转自:http://xixinfei.iteye.com/blog/1256291 this.getClass().getClassLoader().getResource("tem ...

  2. this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream

    本文部分转自:http://xixinfei.iteye.com/blog/1256291 this.getClass().getClassLoader().getResource("tem ...

  3. this.class.getClassLoader().getResourceAsStream

    this.getClass().getClassLoader().getResource("template");    首先,调用对象的getClass()方法是获得对象当前的类 ...

  4. 有关getClassLoader().getResourceAsStream(fileName)、class.getResourceAsStream(fileName)和().getContextClassLoader().getResourceAsStream(fileName)的区别

    一:前言 在自己获取属性时,碰见了XX.class.getResourceAsStream(fileName),自己对这个其实不是很理解,上网查了下资料,又看到了上述的几个,所以就研究了下. 二:内容 ...

  5. super.getClass()与this.getClass()

    原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Te ...

  6. this.getClass()和super.getClass()得到的是同一个类

    今天dubug代码时发现this.getClass()和super.getClass()得到的竟然是同一个类,都是当前类. 遍访网络资料得出: getClass()不受this和super影响,而是有 ...

  7. 编写高质量代码改善C#程序的157个建议——建议28:理解延迟求值和主动求值之间的区别

    建议28:理解延迟求值和主动求值之间的区别 要理解延迟求值(lazy evaluation)和主动求值(eager evaluation),先看个例子: List<, , , , , , , , ...

  8. InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");

    1.与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序.当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java ...

  9. 使用类加载器加载配置文件/getClassLoader().getResourceAsStream()

    加载配置文件的两种方式; 1. 2. 两者相比,第一种方式更为方便,因为文件目录发生改变就会找不到.

随机推荐

  1. linux中如何查看进程的启动时间

    ps -p PID -o lstart 其中PID是进程的pid [root@lvs-a logs]# -o lstart STARTED Tue Oct ::

  2. 代理 IP 云打码平台的使用

    代理ip 获取代理ip的网站: 快代理 西祠代理 www.goubanjia.com #代理ip import requests headers = { 'User-Agent':'Mozilla/5 ...

  3. C#事件の事件聚合器

    事件聚合器用于集中管理事件的订阅(Subscribe)和处理(Handle),要使用事件聚合器,首先要理解:事件(event)本质上是一个类. 传统的+=和-=不足: 1.管理很麻烦:2.不方便扩展. ...

  4. 如何在excel单元格中插入图片批注

    在excel单元格中插入图片批注的方法: 1.选定要插入图片的单元格,然后右键选择插入批注. 2.然后会插入一个批注框,为了不影响图片效果,可以将批注文字都删除.然后鼠标移动到批注框边角再右键. 3. ...

  5. BZOJ2521:[SHOI2010]最小生成树(最小割)

    Description Secsa最近对最小生成树问题特别感兴趣.他已经知道如果要去求出一个n个点.m条边的无向图的最小生成树有一个Krustal算法和另一个Prim的算法.另外,他还知道,某一个图可 ...

  6. Linux:Day3 文件系统

    Linux的文件系统: 根文件系统(rootfs):root filesystem /boot:引导文件存放目录:内核文件(vmlinuz).引导加载器(bootloader,grub)都存放于此目录 ...

  7. Java 定义静态list

    private final static List<String> imgList = Arrays.asList("group1/M00/0B/B0/rBGl-lvr7vWAN ...

  8. 应对WannaCry勒索危机之关闭445端口等危险端口——以本人Windows7系统为例

    应对WannaCry勒索危机之关闭445端口等危险端口--以本人Windows7系统为例 近日,全球范围内爆发WannaCry勒索病毒危机 我国很多大学纷纷中招.受灾严重,甚至连刘老师的电脑也-- 拿 ...

  9. oracle sys_guid

    select sys_guid() from dual;

  10. day08--文件操作(2)

    一.with open(): 形式:with open('文件路径(文件名)','文件操作方式','字符编码方式')as 文件别名: with open操作可以将文件的内存释放交给with 管理,wi ...