`
Breese
  • 浏览: 63178 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring 如何访问底层资源(文件)

 
阅读更多

为了更好的使用和理解应用上下文,通常用户应当对Spring的Resource有所了解,详见第 4 章 资源

应用上下文同时也是个资源加载器(ResourceLoader),能被用来加载多个Resource。一个Resource实质上可以当成一个java.net.URL,可被用来从大多数位置以透明的方式获取底层的资源,包括从classpath、文件系统位置、任何以标准URL描述的位置以及其它一些变种。如果资源位置串是一个没有任何前缀的简单路径,这些资源来自何处取决于实际应用上下文的类型。

为了让bean能访问静态资源,可以象其它属性一样注入Resource。被注入的Resource属性值可以是简单的路径字符串,ApplicationContext会使用已注册的PropertyEditor,来将字符串转换为实际的Resource对象。

ApplicationContext构造器的路径就是实际的资源串,根据不同的上下文实现,字符串可视为不同的形式(例如:ClassPathXmlApplicationContext会把路径字符串看作一个classpath路径)。然而,它也可以使用特定的前缀来强制地从classpath或URL加载bean定义文件,而不管实际的上下文类型。

3.8.5. ApplicationContext在WEB应用中的实例化

BeanFactory通常以编程的方式被创建不同的是,ApplicationContext能以声明的方式创建,如使用ContextLoader。当然你也可以使用ApplicationContext的实现之一来以编程的方式创建ApplicationContext实例。首先,让我们先分析ContextLoader接口及其实现。

ContextLoader机制有两种方式,ContextLoaderListenerContextLoaderServlet,他们功能相同但是listener不能在Servlet2.3容器下使用。Servlet2.4规范中servlet context listeners需要在web应用启动并能处理初始请求时立即运行。(servlet context listener关闭的时候也是相同的)。servlet context listener是初始化Spring ApplicationContext理想的方式。你可能愿意选择ContextLoaderListener,虽然是一样的,但决定权在于你。你可以查看ContextLoaderServlet的Javadoc来获得更详细的信息。

可以象下面所示例的一样使用ContextLoaderListener注册一个ApplicationContext

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- or use the ContextLoaderServlet instead of the above listener
<servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
-->

监听器首先检查contextConfigLocation参数,如果它不存在,它将使用/WEB-INF/applicationContext.xml作为默认值。如果已存在,它将使用分隔符(逗号、冒号或空格)将字符串分解成应用上下文件位置路径。可以支持ant-风格的路径模式,如/WEB-INF/*Context.xml(WEB-INF文件夹下所有以"Context.xml"结尾的文件)。或者/WEB-INF/**/*Context.xml(WEB-INF文件夹及子文件夹下的以"Context.xml"结尾的文件)。

ContextLoaderServletContextLoaderListener一样使用'contextConfigLocation'参数。

分享到:
评论

相关推荐

    spring底层的学习之路

    本资料包"Spring学习之路"深入浅出地介绍了Spring的底层原理以及如何搭建一个完整的Spring MVC项目,对于初学者来说是极好的学习资源。 首先,我们要了解Spring的核心概念——IoC(Inversion of Control)和DI...

    模拟spring工厂模式底层实现。

    在Spring中,XML配置文件是常见的Bean定义方式,JDOM可以用来解析和操作这些XML文件。 至于`SpringFactory`,可能是用户自定义的一个工厂类,模仿Spring的Bean创建逻辑。在实际开发中,我们可以创建类似的工厂,...

    spring源码底层分析视频教程

    - **ApplicationContext** 是BeanFactory的子接口,提供了更多的企业级服务,如资源访问、事件发布机制等。 2. **IoC容器初始化流程** - 加载配置文件 - 创建BeanDefinitionReader实例 - 注册BeanDefinition...

    spring-cloud项目

    - `src/main/resources`:资源文件目录,如配置文件、静态资源等。 - `application.properties`/`application.yml`:Spring Boot和Spring Cloud的主要配置文件。 - `bootstrap.properties`/`bootstrap.yml`:用于...

    第一节课-Spring源码分析之-常见底层核心注解-2 (2)1

    Spring Web模块针对Web应用程序,提供了诸如多文件上传、Web应用上下文等功能,并且包含了Spring远程支持的Web相关部分。Aop模块则关注面向切面编程,分为Aspects模块(集成AspectJ支持)和Instrumentation模块...

    加载jar包中的spring配置文件

    Spring与MyBatis的整合可以让数据访问层的代码更加简洁,同时利用Spring的事务管理功能。 7. **SpringDemo**:这可能是项目中的一个示例或演示,展示了如何加载和使用类路径下的Spring配置文件,以及如何集成其他库...

    spring源码修改文件.zip

    总的来说,"spring源码修改文件.zip"是一个辅助学习和研究Spring源码的资源集合。通过理解并修改这些文件,你可以更深入地掌握Spring的工作原理,提升自己的Java开发技能。这个过程可能会充满挑战,但当你成功地理解...

    Springboot读取本地json文件工程

    在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON...在项目结构中,`src`目录通常包含源代码、资源文件等,确保JSON文件位于`src/main/resources`下,这样Spring Boot可以将其打包到应用程序的类路径中。

    springframework.zip

    总的来说,"springframework.zip"文件是Java开发人员的重要资源,它包含了构建现代、模块化、可测试的Java应用所需的一切。开发者可以通过解压并研究其中的源码、库和文档,深入理解Spring框架的工作原理,并利用其...

    Spring包资源下载

    在下载的压缩包"spring需要jar包14"中,你可能找到了以下关键jar文件: - `spring-beans.jar`:包含Bean工厂和相关类。 - `spring-context.jar`:提供了ApplicationContext和上下文相关功能。 - `spring-core.jar`...

    Spring mvc、 Spring、 Spring jdbc 整合 demo

    开发者可以从中了解如何设置项目结构,编写XML配置文件,以及如何在Java代码中使用Spring框架提供的各种工具和接口。这对于理解和掌握Spring框架的整体工作流程至关重要。 6. **学习资源** 学习这个整合Demo,可以...

    跟我学Spring,Spring3学习资料

    - **资源基础知识:** 介绍了Spring中资源抽象的概念,包括如何通过Spring加载和管理资源文件。 - **内置Resource实现与访问Resource:** Spring提供了一种统一的方式来访问不同资源,如文件系统、classpath、URL等...

    Java EE 框架整合开发⼊⻔到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf

    BeanFactory提供了基础的IoC支持,而ApplicationContext是BeanFactory的子接口,为Spring应用提供配置服务,并且支持国际化和资源访问。 通过这部分内容的学习,可以了解到Spring框架如何帮助开发者从编写大量样板...

    spring-4.3.1 jar包

    它提供了如ClassPathResource等资源访问工具,以及用于对象创建和初始化的BeanFactory。 3. **spring-beans-4.3.1.RELEASE.jar**:此模块主要负责处理bean的定义、bean工厂的创建以及bean之间的依赖关系解析。它...

    用Maven搭建Spring+Spring MVC+Hibernate框架

    在Eclipse中,你可以创建`src/main/webapp`目录结构,放置静态资源(如HTML、CSS、JavaScript)、JSP视图文件和Web相关的配置文件。在`WEB-INF`目录下创建`web.xml`,配置Spring MVC的前端控制器DispatcherServlet。...

    官方原版源码spring-framework-5.2.3.RELEASE.zip

    通过查看这些XSD,我们可以更清晰地理解Spring配置的底层结构。 在源码分析过程中,有几个关键的类和接口值得注意。如`BeanFactory`,它是IoC容器的接口,负责实例化、配置和管理bean。`ApplicationContext`扩展了`...

    Spring全家桶知识笔记.pdf

    关于Spring的IOc原理,它通过配置文件描述bean和它们之间的依赖关系,并利用Java的反射功能实例化这些bean,建立它们之间的依赖关系。Spring的IoC容器在这些基础上提供了更多高级服务,比如bean的实例缓存、生命周期...

    mybatis-spring-1.2.0.jar

    标签 "mybatis spring 包查找网站" 进一步细化了这个文件的相关性,表明它是与MyBatis和Spring集成相关的,并且与寻找这类库的在线资源有关。MyBatis是一个灵活的SQL映射框架,它将SQL与Java代码分离,而Spring是一...

    spring源码分析免费资源

    Spring框架是Java开发中最常用的轻量级开源框架之一,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,...希望这个免费资源能够帮助你深入理解Spring,并在实践中发挥更大的作用。

Global site tag (gtag.js) - Google Analytics