本文介绍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的角度上出发还是有些帮助的。特此感谢他们。

Hello Spring Framework——源(Resources)的更多相关文章

  1. spring framework 源码

    spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...

  2. Idea搭建spring framework源码环境

    spring的源码目前放在github上,https://github.com/spring-projects/spring-framework 一.安装Git 二.安装Gradle gradle为解 ...

  3. Spring Framework 源码编译导入

    预先准备环境 Window 10 JDK环境 List item Gradle 以及其环境变量配置 spring-framework源码(https://gitee.com/mirrors/Sprin ...

  4. spring framework源码之SpringFactoriesLoader

    SpringFactoriesLoader 查询META-INF/spring.factories的properties配置中指定class对应的所有实现类. public abstract clas ...

  5. spring framework源码之AnnotationConfigApplicationContext

    AnnotationConfigApplicationContext 内部使用了AnnotatedBeanDefinitionReader:ClassPathBeanDefinitionScanner ...

  6. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  7. 走进Spring Boot源码学习之路和浅谈入门

    Spring Boot浅聊入门 **本人博客网站 **IT小神 www.itxiaoshen.com Spring Boot官网地址:https://spring.io/projects/spring ...

  8. Mybatis的初始化和结合Spring Framework后初始化的源码探究

    带着下面的问题进行学习: (1)Mybatis 框架或 Spring Framework 框架对数据层 Mapper 接口做了代理,那是做了 JDK 动态代理还是 CGLIB 代理? (2)Mappe ...

  9. Mybatis一级缓存和结合Spring Framework后失效的源码探究

    1.在下面的案例中,执行两次查询控制台只会输出一次 SQL 查询: mybatis-config.xml <?xml version="1.0" encoding=" ...

随机推荐

  1. jackson-mapper使用工具类

    import com.google.common.collect.Lists;import org.codehaus.jackson.annotate.JsonMethod;import org.co ...

  2. 转:Egret社区翻译的《TypeScript语言手册》

      <TyptScript语言手册>第1章-介绍<TypeScript语言手册>第2章-基本概念<TypeScript语言手册>第3章-类型<TypeScri ...

  3. Eclipse汉化后切换回英文

    方法: 1.复制MyEclipse的快捷方式: 2.右键快捷方式->属性,在“目标”的后边加上 -nl "en" 之前的:"F:\Program Files\MyE ...

  4. 怎么搭建DC+SCCM 域环境(一)

    需要的软件: 1. SCCM 2012 SP1 2. SQL Server 2012 3. System ISO 4. ADK 环境搭建顺序: 1. 安装DC和SCCM 机器,并配置需要的IP.DNS ...

  5. magento后台paypal设置

    如何在magento后台设置paypal呢? 这边把整理的简单跟大家分享一下. 1.system->config-paypel1.1 Merchant Country 设置国家1.2 Email ...

  6. AngularJS基础知识1

    一.angularJS简介 1.什么是 AngularJS? AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.AngularJS是协助搭建单页面工程 ...

  7. 如何让tomcat不记录catalina.out这个日志文件

    tomcat日志记录配置在conf/logging.properties中 有这5类日志 catalina,localhost,manager,admin(控制台),host-manager 还有8个 ...

  8. Easy Tag Write(1)

    package skyseraph.easytagwrite; import skyseraph.android.util.CustomDialog; import skyseraph.android ...

  9. node.js表单——formidable/////z

    node.js表单--formidable   node处理表单请求,需要用到formidable包.安装formidable包的命令如下: npm install formidable 安装pack ...

  10. php 截取代码方法(140个字后的。)

    //截取摘要public static function mbsubstr($str){    $strleng = mb_strlen($str,"utf8");    $mbs ...