`

Spring 2.0 学习笔记(3)高级容器

阅读更多

Spring的创始者Rod Johnson 建议使用ApplicationContext 来取代BeanFactory, 在实现ApplicationContext的类中,最常用的大概是以下3个。

org.springframework.context.support.FileSystemXmlApplicationContext

    可指定XML定义文件的相对路径或绝对路径读取定义文件

org.springframework.context.support.ClassPathXmlApplicationContext

   从Classpath设置路径中读取XML定义文件

org.springframework,.web.context.support.XmlWebApplicationContext

  在web应用程序的文件架构中,指定相对位置读取定义文件

-------------------------------------------------------------------------------------------------------------------

将Bean工厂或者应用程序上下文的定义划分到多个文件是有真正价值。随着容器定义作为一个文件的不断增长,将

很难理解其中Bean定义是干什么的,并且更难管理,包括修改。

 一般地,我们建议或者按照应用程序中的纵向结构划分上下文,后者横向地按照模块或组件划分。在

后一种情况中,每个文件段中的定义组成狭小的纵向片断,包括多层。使用两种策略的组合来划分是有意义的!

 --------------------------------------------------------------------------------------------------------------------------------------------

 

  [context-param]
[param-name]contextConfigLocation[/param-name]
  [param-value]
   /WEB-INF/MzMg-DAO-Hibernate.xml
   /WEB-INF/MzMg-Domain-Logic.xml
  [/param-value] 
 [/context-param]

 [listener]
  [listener-class]org.springframework.web.context.ContextLoaderListener[/listener-class]
 [/listener]

个是用ContextLoaderListener这个Listerner,另一个是ContextLoaderServlet这个Servlet,这两个方法都是在web应用启动的时候来初始化WebApplicationContext,我个人认为Listerner要比Servlet更好一些,因为Listerner监听应用的启动和结束,而Servlet得启动要稍微延迟一些,如果在这时要做一些业务的操作,启动的前后顺序是有影响的。

-------------------------------------------------------------------------------------------------------------------------------------

那么在ContextLoaderListener和ContextLoaderServlet中到底做了什么呢?
以ContextLoaderListener为例,我们可以看到
public void contextInitialized(ServletContextEvent event) {
this.contextLoader = createContextLoader();
this.contextLoader.initWebApplicationContext(event.getServletContext());
}
protected ContextLoader createContextLoader() {
return new ContextLoader();
}
ContextLoader是一个工具类,用来初始化WebApplicationContext,其主要方法就是initWebApplicationContext,我们继续追踪initWebApplicationContext这个方法(具体代码我不贴出,大家可以看Spring中的源码),我们发现,原来ContextLoader是把WebApplicationContext(XmlWebApplicationContext是默认实现类)放在了ServletContext中,ServletContext也是一个“容器”,也是一个类似Map的结构,而WebApplicationContext在ServletContext中的KEY就是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,我们如果要使用WebApplicationContext则需要从ServletContext取出,Spring提供了一个WebApplicationContextUtils类,可以方便的取出WebApplicationContext,只要把ServletContext传入就可以了。

----------------------------------------------------------------------------------------------------------------------------------

初探spring applicationContext在web容器中加载过程

http://www.javaworld.com.tw/jute/post/view?bid=42&id=176383&sty=3&tpg=9&age=0

分享到:
评论

相关推荐

    spring2.0学习笔记

    转载关于spring2.0的学习笔记,希望对大家有所帮助

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    详尽的Spring2.0学习提纲

    对于学习Spring2.0很好的指导作用,给初学者指明一个学习的方向和思路。

    精通Spring2.0读书笔记(1)

    Java与Java EE平台规范标准化了各种具体Java技术,比如,JDBC,JMX,Servlet,Annotation和JNDI API等,这些具体技术正是Spring2.0统一一体中的具体侧面。Spring2.0是Java和Java EE架构级框架,其依托的正是这些具体...

    spring2.0学习笔记+spring定时任务

    NULL 博文链接:https://tw5566.iteye.com/blog/423883

    spring2.0技术手册

    林信良著 spring2.0技术手册 《Spring 2.0技术手册》介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与...

    spring2.0学习源码

    spring2.0宝典源代码

    Spring2.0学习笔记

    1、ICO环境的搭建 2、属性注入 3、自定义属性编辑器 4、AOP实现 5、事务处理 6、Spring事务配置的五种方式 详解 7、Struts与Spring集成方案

    Spring 2.0 spring 2.0 标准API

    Spring 2.0 标准API 用处不大的资源我不发

    Spring2.0jar包

    Spring2.0jar包,J2EE项目中,用于集成的框架。

    Spring 2.0 中文参考手册

    Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册Spring 2.0 中文参考手册,

    spring2.0jar包(一)

    spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一) spring2.0jar包(一)

    Spring2.0技术手册

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

    spring2.0学习的案例

    spring中的配置问题,包,实例,applicationContext.xml

    Spring2.0技术手册(林信良)_part2

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

    SPRING2.0开发详解

    SPRING2.0开发详解: 详细阐述了SPRING2.0的核心技术和框架整合能力

    spring2.0 中文帮助文档 pdf

    spring2.0 中文帮助文档 spring2.0 中文帮助文档 spring2.0 中文帮助文档 spring2.0 中文帮助文档 spring2.0 中文帮助文档

    spring2.0 使用 Quartz 必备包

    spring2.0 使用 Quartz 必备包 里面有: quartz-all-1.5.2.jar spring-support.jar 适合:SSH框架 spring2.0 strut2.0 hibernate3.2等

Global site tag (gtag.js) - Google Analytics