web.xml 中spring-servlet.xml 和 application.xml 配置位置及含義

來源:互聯網
上載者:User

標籤:聲明   index   odi   3.1   源檔案   tor   一個   閱讀次數   log   

web.xml 中spring-servlet.xml 和 application.xml 配置位置及含義 2015-09-12 18:04 18451人閱讀 評論(0) 收藏 舉報 分類: web.xml (8)

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

在我們進行 spring-servlet 進行開發的時候,經常會遇到設定檔配置的問題,要徹底的解決這個問題,我們需要瞭解 springMVC 設計的基本架構

1.SpringMVC 的配置分為兩部分 application.xml 和 spring-servlet.xml

2.兩個設定檔的作用和配置位置

2.1.application.xml :對應的是系統層級的配置,作用範圍是系統上下文。

2.2.spring-servlet.xml:對應的是 controller 層級的配置,作用範圍是控制層上下文。

3.它們在web.xml 中的配置

3.1.因為 application.xml 是系統層級的上下文,所以它的初始化需要放到 web.xml 中的<context-param>標籤中,同時其他的類似定時任務的設定檔等等都是放在這個標籤下進行初始化的。

3.2.因為spring-servlet.xml只是 controller 層級的上下文,說白了就是 servlet 層級的初始化,它不涉及到除了轉寄之外的任何實體,所以它的作用範圍僅僅限制在 servlet 層級,所以它的初始化應該是跟spring 的 DispatcherServlet 初始化在一起,所以就是在 <servlet> 表情中初始化的。它有一個預設值就是【/WEB-INF/remoting-servlet.xml 】,注意設定檔的對應的名稱是【 servlet-name】-servlet.xml,所以如果你沒有給servlet 制定設定檔的位置,並且在預設位置下也沒有設定檔,那麼系統啟動的時候就會報錯。


注意:對於 servlet設定檔裡面應該初始化的東西,除了視圖的解析方式、靜態資源檔案的存放位置、controller的初始化方式之外,其他的都不應該放在 servlet 設定檔中,應為它只負責 請求的轉寄,返回結果的解析以及靜態資源檔案的解析,其他的對象的初始化,定時任務...都不應該放到這個設定檔下進行管理。


[html] view plain copy
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    4.                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
    5.     version="3.0" metadata-complete="true">  
    6.       
    7.     <!--  這個地方預設載入的是系統的變數的設定檔,它們屬於是系統層級的配置  -->  
    8.     <context-param>  
    9.         <param-name>contextConfigLocation</param-name>  
    10.         <param-value>  
    11.         classpath:spring/application.xml.xml,  
    12.         classpath:spring/spring-quartz.xml  
    13.         </param-value>  
    14.     </context-param>  
    15.     <context-param>  
    16.         <param-name>webAppRootKey</param-name>  
    17.         <param-value>webapp.root</param-value>  
    18.     </context-param>  
    19.     <listener>  
    20.         <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>  
    21.     </listener>  
    22. <!--     <context-param>  
    23.         <param-name>logbackConfigLocation</param-name>  
    24.         <param-value>classpath:conf/logback.xml</param-value>  
    25.     </context-param> -->  
    26. <!--     <listener>  
    27.         <listener-class>xorg.springframework.web.util.LogbackConfigListener</listener-class>  
    28.     </listener> -->  
    29.     <listener>  
    30.         <listener-class>com.cloudFarmHDAPI.admin.listener.SystemListener</listener-class>  
    31.     </listener>  
    32.       
    33.     <!--  這個地方載入的是 servlet 的變數的設定檔,它們屬於 controller 層級的配置  
    34.         1.如果不配置這個 servlet-context.xml 的設定檔位置,  
    35.         那麼預設就會去/WEB-INF/servlet-context.xml 下面去尋找這個檔案   
    36.         2.如果配置了這個位置,那麼它就會去制定位置負載檔案  
    37.       -->  
    38.     <servlet>  
    39.         <servlet-name>appServlet</servlet-name>  
    40.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    41.         <init-param>  
    42.             <param-name>contextConfigLocation</param-name>  
    43.             <param-value>classpath:spring/servlet-context.xml</param-value>  
    44.         </init-param>  
    45.         <load-on-startup>1</load-on-startup>  
    46.     </servlet>  
    47.     <servlet-mapping>  
    48.         <servlet-name>appServlet</servlet-name>  
    49.         <url-pattern>/</url-pattern>  
    50.     </servlet-mapping>  
    51.     <!-- charactor encoding -->  
    52.     <filter>  
    53.         <filter-name>encodingFilter</filter-name>  
    54.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    55.         <init-param>  
    56.             <param-name>encoding</param-name>  
    57.             <param-value>utf-8</param-value>  
    58.         </init-param>  
    59.     </filter>  
    60.     <filter-mapping>  
    61.         <filter-name>encodingFilter</filter-name>  
    62.         <url-pattern>/*</url-pattern>  
    63.     </filter-mapping>  
    64.     <!-- shiro security filter -->  
    65.     <filter>  
    66.         <filter-name>shiroSecurityFilter</filter-name>  
    67.         <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
    68.         <init-param>  
    69.             <param-name>targetFilterLifecycle</param-name>  
    70.             <param-value>true</param-value>  
    71.         </init-param>  
    72.     </filter>  
    73.     <filter-mapping>  
    74.         <filter-name>shiroSecurityFilter</filter-name>  
    75.         <url-pattern>/*</url-pattern>  
    76.         <dispatcher>REQUEST</dispatcher>  
    77.         <dispatcher>FORWARD</dispatcher>  
    78.         <dispatcher>ERROR</dispatcher>  
    79.     </filter-mapping>  
    80.     <session-config>    
    81.       <session-timeout>60</session-timeout>    
    82.     </session-config>   
    83.     <welcome-file-list>    
    84.         <welcome-file>index.htm</welcome-file>    
    85.     </welcome-file-list>  
    86. </web-app> 

web.xml 中spring-servlet.xml 和 application.xml 配置位置及含義

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.