J2EE加载资源文件以及Spring加载XML文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了J2EE加载资源文件以及Spring加载XML文件相关的知识,希望对你有一定的参考价值。

J2EE加载XML文件

Resource接口,是用来加载文件的接口。

FileSystemResource和ClassPathResource都是实现了Resource接口,他们都可以用来加载XML文件。

具体代码如下:

1 Resource resource1 = new ClassPathResource("文件.xml");
2 
3 Resource resource2 = new FileSystemResource("盘符:/项目路径/src/文件.xml");

 

ClassPathResource加载文件,是从源文件夹下(比如src),去找文件。

注:web项目中,不同源文件夹的文件最终都会被编译到classes目录中,所以不同源文件夹下的文件不能同名,不然会覆盖。

FileSystemResource加载文件,是从盘符为起点,去找文件。

 

 

Spring加载XML文件

Spring中ResourceLoader是加载文件的接口。

ResourcePatternResolver接口继承了ResourceLoader接口。

PathMatchingResourcePatternResolver类实现了ResourcePatternResolver接口。

Spring中加载文件的代码如下:

 

 1 ResourcePatternResolver rp = new PathMatchingResourcePatternResolver();
 2 
 3 //空1,此处可填入classpath或file,classpath是以项目src目录为起点, file是以盘符为起点。
 4 //空2,是文件的路径+名字。
 5 Resource resource = rp.getResource("空1:空2");
 6 
 7 
 8 //classpath*
 9 //空1后面加*,如classpath*,这个意思是,在空2的路径下查名字是空2里名字的文件。 返回的是数组。
10 //如:classpath*:com/bean.xml,是从源文件夹下的com目录下找所有的bean.xml, 包括jar里面com目录下的的文件。
11 Resource[] resources = rp.getResources("classpath*:applicationContext.xml");
12 
13 //classpath:com/*.xml            classpath:com/?.xml
14 // ? 单个字符
15 // * 多个字符 0个或多个
16 // ** 层级关系 (多级目标)子孙目录都找到
17 Resource[] resources1 = rp.getResources("classpath:com/bean*.xml");
18 Resource[] resources1 = rp.getResources("classpath:com/bean?.xml");
19 
20 //找com目录下的xml文件和 com目录下,子目录中的xml文件
21 Resource[] resources1 = rp.getResources("classpath:com/*/bean.xml");
22 
23 //找com目录下xml文件和com目录下所有目录(子孙目录)的xml文件
24 Resource[] resources1 = rp.getResources("classpath:com/**/bean.xml");

 

以上是关于J2EE加载资源文件以及Spring加载XML文件的主要内容,如果未能解决你的问题,请参考以下文章

IDEA导入maven工程以及web.xml中spring配置文件文件加载不到的问题

spring boot打jar包运行,加载jar包外部的页面以及静态资源文件

07.Spring Bean 加载 - BeanDefinitionReader

spring配置加载maven项目里面的src/main/resoures下的静态资源,配置路径是file:

Spring加载XML机制

spring框架——day02常用配置和注解