Hello Spring Framework——源(Resources)

本文介绍Spring框架如何解析外部资源文件,仅参考官方文档《第7章 Resources》。

***************************以下是正文的部分***************************

通过Spring框架提供的对象可以获取诸如Http,Ftp,File,InputStream,ByteArray等形式的外部资源。总体来说,这些对象都继承自ApplicationContext接口。包括为了初始化Spring容器常用的ClassPathXmlApplicationContext和AnnotationConfigApplicationContext对象。下面通过代码举例:

一、通过URL地址获取XML配置文件

package resources.loader;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class ResourceLoader {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("http://localhost:8080/Demo/lazyConfig.xml");
for(String beanName : ctx.getBeanDefinitionNames()){
System.out.println(beanName);
}
}
}

使用http:前缀

二、获取本地资源文件

(1)获取classpath目录下的资源文件

package resources.loader;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext; public class ResourceLoader {
public static void main(String[] args) {
ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:appConfig.xml");
for(String beanName : ctx.getBeanDefinitionNames()){
System.out.println(beanName);
}
}
}

使用classpath:前缀

(2)获取任意目录下的资源文件

package resources.loader;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext; public class ResourceLoader {
public static void main(String[] args) {
//使用绝对路径作为参数可以解析任何路径下的资源文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("file:/.../lazyConfig.xml");
for(String beanName : ctx.getBeanDefinitionNames()){
System.out.println(beanName);
}
}
}

使用绝对路径

(3)获取classpath以及子目录下的资源文件

ApplicationContext ctx =
new ClassPathXmlApplicationContext("classpath*:conf/appContext.xml");

使用classpath*前缀

通常获取用来配置Spring容器的XML文件只会使用ClassPathXmlApplicationContext对象,上面的例子只是为了说明ApplicationContext接口还有其它实现。开发中并不会这样使用。

其实这篇文稿之前就写好了,但是一直没有发表。原因是对于这部分的知识,我仅仅是翻译了文档而已,实际应用中并无使用过。但是后来有看过的朋友说还是应该发表出来,原因是他们觉得对于这部分的内容,对于不想阅读英文的朋友从学习Spring的角度上出发还是有些帮助的。特此感谢他们。

上一篇:Java文件选择对话框(文件选择器JFileChooser)的使用:以一个文件加密器为例


下一篇:linux 如何显示一个文件的某几行(中间几行)