SSM整合之相關配置文件部分內容解析

applicationContext.xml

  1. context:exclude-filter
<context:component-scan base-package="top.kongk.ssmcrud">
     <!--exclude-filter其意爲不掃描指定註解標識的類,
     其他相關注解標識類全部掃描-->
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
  1. aop:config
<!--切面配置-->
<aop:config>
     <!--切入點表達式-->
     <!-- execution括號裏 public可以不寫,
     第一個*代表返回類型 service後的兩個點代表包含子包, 
     第二個*代表所有的方法, 後面的兩個..代表方法任意參數 -->
     <aop:pointcut id="txPointCut" expression="execution(* top.kongk.ssmcrud.service..*(..))"/>
     <!--關聯事務增強-->
     <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>
  1. tx:advice
<!--配置事務增強-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <!-- *代表所有的方法都是事務方法 -->
        <tx:method name="*"/>
        <!-- 給get方法做只讀的調優處理-->
        <tx:method name="get*" read-only="true"/>
    </tx:attributes>
</tx:advice>

mybatis-config.xml

  1. settings
<settings>
    <!--開啓駝峯命名規則映射-->
    <!--從數據庫的a_column命名方式轉換到Java的aColumn-->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <!--指定MyBatis所用日誌的集體實現,未指定則自動查找-->
    <setting name="logImpl" value="LOG4J"/>
</settings>

dispatcherServlet.xml

  1. context:include-filter
<!--屬性use-default-filters="false"和context:include-filter子標籤一起使用,
	其意爲:只掃描指定註解的類。
	context:exclude-filter直接使用-->
<context:component-scan base-package="top.kongk.ssmcrud.controller" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
  1. mvc:default-servlet-handler:會在Spring MVC上下文中定義一個org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它會像一個檢查員,對進入DispatcherServlet的URL進行篩查,如果發現是靜態資源的請求,就將該請求轉由Web應用服務器默認的Servlet處理,如果不是靜態資源的請求,才由DispatcherServlet繼續處理
<!--將mvc不能處理的資源交給tomcat的Servlet-->
<mvc:default-servlet-handler/>
  1. mvc:annotation-driven
<!--添加了註解驅動配置,可以使用mvc的更高級的功能, 
例如 JSP03校驗, 快捷的ajax, 映射動態請求-->
<mvc:annotation-driven/>

web.xml

  1. filter過濾器
在Spring框架中是如何解決從頁面傳來的字符串的編碼問題的呢?
下面我們來看看Spring框架給我們提供過濾器CharacterEncodingFilter
這個過濾器就是針對於每次瀏覽器請求進行過濾的,然後再其之上添加
了父類沒有的功能即處理字符編碼。
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    	其中encoding用來設置編碼格式
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        forceEncoding用來設置是否理會 request.getCharacterEncoding()方法,
        設置爲true則強制覆蓋之前的編碼格式
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
配置rest風格的URI (統一資源標識符)的filter HiddenHttpMethodFilter
它會把post請求通過傳來的一個map鍵值對, 轉變成相應的put delete
<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
配置PUT請求
<filter>
    <filter-name>httpPutFormContentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<!--/*是攔截所有的文件夾,不包含子文件夾 /**是攔截所有的文件夾及裏面的子文件夾-->
<filter-mapping>
    <filter-name>httpPutFormContentFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
  1. Servlet
<!--在DispatcherServlet的初始化過程中,
框架會在web應用的 WEB-INF文件夾下尋找
名爲[servlet-name]-servlet.xml 的配置文件,
生成文件中定義的bean。-->
<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--指明瞭配置文件的文件名,不使用默認配置文件名,
    而使用dispatcher-servlet.xml配置文件。-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <!--其中<param-value>**.xml</param-value> 這裏可以使用多種寫法-->
        <!--1、不寫,使用默認值:/WEB-INF/<servlet-name>-servlet.xml-->
        <!--2、<param-value>/WEB-INF/classes/dispatcher-servlet.xml</param-value>-->
        <!--3、<param-value>classpath*:dispatcher-servlet.xml</param-value>-->
        <!--4、多個值用逗號分隔-->
        <param-value>classpath:springmvc/dispatcherServlet.xml</param-value>
    </init-param>
    <!--是啓動順序,讓這個Servlet隨Servletp容器一起啓動。-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <!--這個Servlet的名字是dispatcher,可以有多個DispatcherServlet,
    是通過名字來區分的。
    每一個DispatcherServlet有自己的WebApplicationContext上下文對象。
    同時保存的ServletContext中和Request對象中.-->
    <!--ApplicationContext是Spring的核心,Context我們通常解釋爲上下文環境,
    我想用“容器”來表述它更容易理解一些,ApplicationContext則是“應用的容器”了:P,
    Spring把Bean放在這個容器中,在需要的時候,用getBean方法取出-->
    <servlet-name>dispatcherServlet</servlet-name>
    <!--Servlet攔截匹配規則可以自已定義,
    當映射爲@RequestMapping("/user/add")時,爲例,攔截哪種URL合適?-->
    <!--1、攔截*.do、*.htm, 例如:/user/add.do,這是最傳統的方式,
    最簡單也最實用。不會導致靜態文件(jpg,js,css)被攔截。-->
    <!--2、攔截/,例如:/user/add,可以實現現在很流行的REST風格。
    很多互聯網類型的應用很喜歡這種風格的URL。
    弊端:會導致靜態文件(jpg,js,css)被攔截後不能正常顯示。 -->
    <url-pattern>/</url-pattern> <!--會攔截URL中帶“/”的請求。-->
</servlet-mapping>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章