Spring_8 整合Web項目原理

實現(xiàn)思想

  1. 加載Spring 核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
  • new 對象,功能可以實現(xiàn),效率低
  1. 實現(xiàn)思想:把加載配置文件和創(chuàng)建對象過程,在服務(wù)器啟動時候完成。

  2. 實現(xiàn)原理:

    • ServletContext 對象
    • 監(jiān)聽器
    • 具體使用
      1. 在服務(wù)器啟動時候,為每個項目創(chuàng)建一個ServletContext對象
      2. 在ServletContext 對象創(chuàng)建時候,使用監(jiān)聽器可以具體到ServletContext 對象在什么時候創(chuàng)建。
        3.使用監(jiān)聽器監(jiān)聽到ServletContext 對象創(chuàng)建時候。
      3. 加載Spring配置文件,把配置文件配置對象創(chuàng)建。
      4. 把創(chuàng)建出來的對象放到ServletContext域?qū)ο罄锩妫╯etAttribute方法)
      5. 獲得對象時候,到ServletContext 域得到(getAttribute方法)

實現(xiàn)步驟

通過配置web.xml 文件,設(shè)置在啟動時加載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. 配置參數(shù)
<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 的配置文件位置

這里需要對參數(shù)進行說明:

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. 添加監(jiān)聽
    固定學(xué)法:
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,261評論 6 342
  • 本文包括:1、Listener簡介2、Servlet監(jiān)聽器3、監(jiān)聽三個域?qū)ο髣?chuàng)建和銷毀的事件監(jiān)聽器4、監(jiān)聽三個域?qū)?..
    廖少少閱讀 6,626評論 6 28
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,783評論 11 349
  • 【點石成金】20170818 學(xué)習(xí)力6 Day95 語言啟蒙詞匯擴展 最近幾天寶寶愛看這本書了,不想開始時...
    葉子ya豆子閱讀 60評論 0 0

友情鏈接更多精彩內(nèi)容