zoukankan      html  css  js  c++  java
  • 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的角度上出发还是有些帮助的。特此感谢他们。

  • 相关阅读:
    四叔的c++入门课(6) 条件语句
    四叔的c++入门课(5)变量类型
    四叔的c++入门课程(4)赋值语句与表达式
    四叔的c++入门课(3)变量
    如何选购笔记本电脑?
    四叔的c++入门课(2)Hello World
    四叔的c++入门课(1)什么是编程
    CSS3 transition-property属性
    display:inline、block、inline-block的区别?
    wps怎样删除空白页 WPS文档的空白页如何删除
  • 原文地址:https://www.cnblogs.com/learnhow/p/5151301.html
Copyright © 2011-2022 走看看