`

01-Web项目引入Spring的方法和原理

 
阅读更多

 JavaWeb项目中引入spring框架


      主要步骤有以下3步:

      1:下载spring的jar包
      2:在项目中web.xml中添加spring配置
      3:bean配置文件-applicationContext.xml

 

1:引入包,这个就不说了,官网下载(仅供参考)。

1 spring-core-3.2.3.RELEASE.jar     核心依赖jar包 
2 spring-context-3.2.3.RELEASE.jar   容器包
3 spring-beans-3.2.3.RELEASE.jar   beans的管理包
4 spring-expression-3.2.3.RELEASE.jar
5 另外还需加入commons-logging.jar

 2:在web.xml中添加spring配置。一个监听,一个路径(配置bean文件所在目录)

<!-- 配置监听器 -->
<listener>  
  <listenerclass>
      org.springframework.web.context.ContextLoaderListener
  </listener-class>  
</listener>    

<!-- 配置context-param,默认配置在WEB-INF目录下 -->
<context-param>  
      <param-name>contextConfigLocation</param-name>  
      <param-value>classpath*:application-context.xml</param-value>   
      <!-- <param-value>/WEB-INF/spring*.xml</param-value> -->  
</context-param>

3:bean配置文件application-context.xml

<beans>
      <!-- 每个bean都对应有一个id和class -->
      <bean id="userService" class="service.UserService">
          <property name="dao" ref="u"></property>
      </bean> 
</beans>

 

在Web项目引入Spring中涉及到的知识点如下:

1、ContextLoaderListener来初始化Spring容器的原理

2、Web容器的工作流程

3、context-param 标签设置的参数如何获取的,以及它和 init-param 的区别

 

1、ContextLoaderListener接口来初始化Spring容器的原理

        在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。

/**
 * 当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,
 * 并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。
 */
contextInitialized(ServletContextEvent sce) 


/**
 * 当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。
 */
contextDestroyed(ServletContextEvent sce)

     正是由于ContextLoaderListener 实现了ServletContextListener 接口,所以ContextLoaderListener可以再Web容器启动时将context-parm设置的application-context.xml中配置的bean进行初始化。

 

2、Web容器工作流程

1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>
2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
4.容器创建<listener></listener>中的类实例,即创建监听.
5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得

       ServletContext = ServletContextEvent.getServletContext();
       context-param的值 = ServletContext.getInitParameter("context-param的键");
6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早。换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行。
7.举例,你可能想在项目启动之前就打开数据库.
那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.

 

3、context-param 标签设置的参数如何获取的,以及它和 init-param 的区别

(1)context-param设置的参数为application范围内的参数,存放在servletcontext中,在web.xml中配置如下:

<context-param>
           <param-name>context/param</param-name>
           <param-value>avalible during application</param-value>
</context-param>

 
(2)init设置的参数为servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:

 
<servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>com.wes.controller.MainServlet</servlet-class>
    <init-param>
       <param-name>param1</param-name>
       <param-value>avalible in servlet init()</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
 
分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    Deprecated的类和方法 2.7.1.4. Apache OJB 2.7.1.5. iBatis 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. 控制反转容器 3.1. 简介 3.2. 容器和bean的基本原理 3.2.1. 容器 3.2.1.1. 配置元数据 3.2.2. ...

    Spring攻略(第二版 中文高清版).part1

    10.6 使用BlazeDS和Spring消费面向消息的服务 421 10.6.1 问题 421 10.6.2 解决方案 422 10.6.3 工作原理 422 10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 ...

    Spring攻略(第二版 中文高清版).part2

    10.6 使用BlazeDS和Spring消费面向消息的服务 421 10.6.1 问题 421 10.6.2 解决方案 422 10.6.3 工作原理 422 10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 ...

    spring chm文档

    3.2. 容器和bean的基本原理 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 构造器参数的解析 3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on...

    Spring 2.0 开发参考手册

    3.2. 容器和bean的基本原理 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 构造器参数的解析 3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on...

    Spring+3.x+企业应用开发实践(2)

    Spring 3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效提升...

    Spring中文帮助文档

    3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动...

    Spring API

    3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动...

    spring boot 项目代码,直接启动本人编写的,里面包含PPT下载地址

    spring boot 项目代码,直接启动,第一部分 点睛Spring 4.x 第1 章 Spring 基础 ..........................................2 1.1 Spring 概述 ............................................. 2 1.2 Spring 项目...

    精通Spring 4.x 企业应用开发实战

    本书是在《精通Spring 3.x――企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    精通Spring4.x企业应用开发实战 - part2/2

    本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...

    Spring3.x企业应用开发实战

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    精通Spring4.x企业应用开发实战 - part1/2

    本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...

    Spring 3.x 企业应用开发实战[光盘].part01.rar

    Spring 3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效提升...

    springboot知识点整理

    1.4 第一个Spring Boot项目(jar):HelloWorld 8 1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 ...

    Spring4.x企业应用开发实战电子版pdf

    本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...

    Spring 3.x企业应用开发实战 pdf

    Spring 3 0引入了众多Java开发者翘首以盼的新功能和新特性 如OXM 校验及格式化框架 REST风格的Web编程模型等 这些新功能实用性强 易用性高 可大幅降低Java应用 特别是Java Web应用开发的难度 同时有效提升应用开发的...

    精通Spring 4.x 企业应用开发实战.pdf

    本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻...

Global site tag (gtag.js) - Google Analytics