首页 > 移动平台 > 详细

8 -- 深入使用Spring -- 3...4 在ApplicationContext中使用资源

时间:2017-02-12 21:05:06      阅读:212      评论:0      收藏:0      [点我收藏+]

      8.3.4 在ApplicationContext中使用资源

        不管以怎样的方式创建ApplicationContext实例,都需要为ApplicationContext指定配置文件,Spring允许使用一份或多分XML配置文件。

        当程序创建ApplicationContext实例时,通常也是以Resource的方式来访问配置文件的,所以ApplicationContext完全支持ClassPathResource、FileSystemResource、ServletContextResource等资源访问方式。

        ApplicationContext确定资源访问策略通常有两种方法:

          ⊙ 使用ApplicationContext实现类指定访问策略。

          ⊙ 使用前缀指定访问策略。

        1.使用ApplicationContext实现类指定访问策略

          创建ApplicationContext对象时,通常可以使用如下三个实现类:

            ⊙ ClassPathXMLApplicationContext : 对应使用ClassPathResource进行资源访问。

            ⊙ FileSystemXmlApplicationContext : 对应使用FileSystemResource进行资源访问。

            ⊙ XmlWebApplicationContext : 对应使用ServletContextResource进行资源访问。

          当使用ApplicationContext的不同实现类时,就意味着Spring使用响应的资源访问策略。

        2.使用前缀指定访问策略

          Spring允许使用前缀来指定资源访问策略。

package edu.pri.lime._8_3_4.prefix.bean.main;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.Resource;

public class SpringTest {

    public static void main(String[] args) {
        /*
         * 通过搜索文件系统路径下的xml文件创建ApplicationContext,
         * 但通过指定classpath:前缀强制搜索类加载路径*/
        ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:app_8_3_4.xml");
        System.out.println(ctx);
        /*使用ApplicationContext的资源访问策略来访问资源,没有指定前缀*/
        Resource resource = ctx.getResource("book.xml");
        System.out.println(resource.getFilename());
        System.out.println(resource.getDescription());
    }
}

          Console : 

org.springframework.context.support.FileSystemXmlApplicationContext@2752f6e2: startup date [Sun Feb 12 19:50:38 CST 2017]; root of context hierarchy
book.xml
file [E:\Users\Administrator\workspace\lime\book.xml]

          系统从类加载路径下搜索xml;但使用ApplicationContext来访问资源时,依然采用的是FileSystemResource实现类,这与FileSystemXmlApplicationContext的访问策略是一致的。这表明:通过classpath:前缀指定资源访问策略仅仅对档次访问有效,程序后面进行资源访问时,还会根据ApplicationContext的实现类来选择对应的资源访问策略。

        3.classpath*:前缀的用法

        4.file:前缀的用法

啦啦啦

8 -- 深入使用Spring -- 3...4 在ApplicationContext中使用资源

原文:http://www.cnblogs.com/ClassNotFoundException/p/6391650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!