本篇文章主要介绍了"java与Spring中的资源加载",主要涉及到方面的内容,对于web前端感兴趣的同学可以参考一下:
java Resource 资源加载: xml properties 包名路径 1 ClassLoad.getResource(Strin...
java Resource 资源加载:
xml properties 包名路径
1 ClassLoad.getResource(String str);
2 Class.getResource(Stirng str);
看第二种加载方式的内部一段代码
Java代码 
- private String resolveName(String name) {
- if (name == null) {
- return name;
- }
- if (!name.startsWith("/")) {
- Class c = this;
- while (c.isArray()) {
- c = c.getComponentType();
- }
- String baseName = c.getName();
- int index = baseName.lastIndexOf('.');
- if (index != -1) {
- name = baseName.substring(0, index).replace('.', '/')
- +"/"+name;
- }
- } else {
- name = name.substring(1);
- }
- return name;
- }
这就说明了
1最终都是通过ClassLoad进行加载的
2第二种方式是可以使用相对路径的,也就是资源相对于本类路径下的路径
如果本来的包名为com.xx.test 下面有一个xx.xml文件和xx.java类。
我们在xx.java类中想加载xx.xml。那么它的路径可以写为:
/com/xx/xx.xml 或者是 xx.cml。
同样的道理如果test包下面还有一个text包,这个包里面有一个yy.java
那么相对路径就是../xx.xml就可以加载到资源。
如果是ClassLoad.getResource(str);这种方式只能写路径的全限定名,不加“/”,也就是com/xx/xx.xml
后又测试了几种文件xml properties 和包路径是可以的 但是java类却不行后追踪源码发现
Java代码 