Spring_8 整合Web项目原理

实现思想

  1. 加载Spring 核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
  • new 对象,功能可以实现,效率低
  1. 实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成。

  2. 实现原理:

    • ServletContext 对象
    • 监听器
    • 具体使用
      1. 在服务器启动时候,为每个项目创建一个ServletContext对象
      2. 在ServletContext 对象创建时候,使用监听器可以具体到ServletContext 对象在什么时候创建。
        3.使用监听器监听到ServletContext 对象创建时候。
      3. 加载Spring配置文件,把配置文件配置对象创建。
      4. 把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
      5. 获得对象时候,到ServletContext 域得到(getAttribute方法)

实现步骤

通过配置web.xml 文件,设置在启动时加载spring的配置文件。
下面是web.xml 文件配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

从上面配置文件中可以看出,只要两步:

  1. 配置参数
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring.xml</param-value>
</context-param>
key value 说明
param-name contextConfigLocation contextConfigLocation 是固定的,在ContextLoader 类中可以找到
param-value classpath:spring.xml classpath: + spring 的配置文件位置

这里需要对参数进行说明:

key value 说明
param-name contextConfigLocation contextConfigLocation 是固定的,在ContextLoader 类中可以找到
param-value classpath:spring.xml classpath: + spring 的配置文件位置

注意: 如果没有如上配置,在启动时,将会抛出java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

  1. 添加监听
    固定学法:
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,941评论 6 342
  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 6,119评论 6 28
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,360评论 11 349
  • 【点石成金】20170818 学习力6 Day95 语言启蒙词汇扩展 最近几天宝宝爱看这本书了,不想开始时...
    叶子ya豆子阅读 46评论 0 0