1. 程式人生 > >ssm中xml介紹

ssm中xml介紹

這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~~~

首先   這篇文章暫時只對框架中所要用到的配置檔案進行解釋說明,而且是針對註解形式的,框架運轉的具體流程過兩天再進行總結.

spring+springmvc+mybatis框架中用到了三個XML配置檔案:web.xml,spring-mvc.xml,spring-mybatis.xml.第一個不用說,每個web專案都會有的也是關聯整個專案的配置.第二個檔案spring-mvc.xml是springmvc的一些相關配置,第三個是mybatis的相關配置.

專案中還會用到兩個資源屬性檔案jdbc.properties和log4j.properties.一個是關於jdbc的配置,提取出來方便以後的修改.另一個是日誌檔案的配置.

以上是我這篇文章中所要講的內容,比較簡單,也很容易懂.希望大牛不要鄙視~~接下來進入正題:

一  web.xml

關於這個配置檔案我以前一直都是朦朦朧朧的狀態,剛好藉著這次整合框架的機會將它瞭解清楚.在下面的程式碼中我對每一個標籤都進行了詳細的註釋,大家一看就懂,主要理解<servlet>中的配置,因為其中配置了前端控制器,在SSM框架中,前端控制器起著最主要的作用.下面貼上程式碼


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns= "http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version= "3.0">
  6. <context-param> <!--全域性範圍內環境引數初始化-->
  7. <param-name>contextConfigLocation </param-name> <!--引數名稱-->
  8. <param-value>classpath:spring-mybatis.xml </param-value> <!--引數取值-->
  9. </context-param>
  10. <!--以下配置的載入順序:先 ServletContext >> context-param >> listener >> filter >> servlet >> spring-->
  11. <!---------------------------------------------------過濾器配置------------------------------------------------------>
  12. <!--例:編碼過濾器-->
  13. <filter> <!-- 用來宣告filter的相關設定,過濾器可以擷取和修改一個Servlet或JSP頁面的請求或從一個Servlet或JSP頁面發出的響應-->
  14. <filter-name>encodingFilter </filter-name> <!--指定filter的名字-->
  15. <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class> <!--定義filter的類的名稱-->
  16. <async-supported>true </async-supported> <!--設定是否啟用非同步支援-->
  17. <init-param> <!--用來定義引數,若在Servlet可以使用下列方法來獲得:String param_name=getServletContext().getInitParamter("param-name裡面的值");-->
  18. <param-name>encoding </param-name> <!--引數名稱-->
  19. <param-value>UTF-8 </param-value> <!--引數值-->
  20. </init-param>
  21. </filter>
  22. <filter-mapping> <!--用來定義filter所對應的URL-->
  23. <filter-name>encodingFilter </filter-name> <!--指定對應filter的名字-->
  24. <url-pattern>/* </url-pattern> <!--指定filter所對應的URL-->
  25. </filter-mapping>
  26. <!---------------------------------------------------監聽器配置------------------------------------------------------>
  27. <!--例:spring監聽器-->
  28. <listener> <!--用來設定Listener介面-->
  29. <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> <!--定義Listener的類名稱-->
  30. </listener>
  31. <!-- 防止Spring記憶體溢位監聽器 -->
  32. <listener>
  33. <listener-class>org.springframework.web.util.IntrospectorCleanupListener </listener-class>
  34. </listener>
  35. <!---------------------------------------------------servlet配置------------------------------------------------------>
  36. <servlet> <!--用來宣告一個servlet的資料 -->
  37. <servlet-name>SpringMVC </servlet-name> <!--指定servlet的名稱-->
  38. <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <!--指定servlet的類名稱,這裡配置了前端控制器-->
  39. <init-param> <!--用來定義引數,可有多個init-param。在servlet類中通過getInitParamenter(String name)方法訪問初始化引數 -->
  40. <param-name>contextConfigLocation </param-name> <!--引數名稱-->
  41. <param-value>classpath:spring-mvc.xml </param-value> <!--引數值-->
  42. </init-param>
  43. <load-on-startup>1 </load-on-startup> <!--當值為正數或零時:Servlet容器先載入數值小的servlet,再依次載入其他數值大的servlet.-->
  44. <async-supported>true </async-supported> <!--設定是否啟用非同步支援-->
  45. </servlet>
  46. <servlet-mapping> <!--用來定義servlet所對應的URL-->
  47. <servlet-name>SpringMVC </servlet-name> <!--指定servlet的名稱-->
  48. <url-pattern>/ </url-pattern> <!--指定servlet所對應的URL-->
  49. </servlet-mapping>
  50. <!-----------------------------------------------會話超時配置(單位為分鐘)------------------------------------------------->
  51. <session-config> <!--如果某個會話在一定時間未被訪問,則伺服器可以扔掉以節約記憶體-->
  52. <session-timeout>120 </session-timeout>
  53. </session-config>
  54. <!---------------------------------------------------MIME型別配置 ------------------------------------------------------>
  55. <mime-mapping> <!--設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟-->
  56. <extension>*.ppt </extension> <!--副檔名名稱-->
  57. <mime-type>application/mspowerpoint </mime-type> <!--MIME格式-->
  58. </mime-mapping>
  59. <!---------------------------------------------------歡迎頁面配置 ------------------------------------------------------>
  60. <welcome-file-list> <!--定義首頁列單.-->
  61. <welcome-file>/index.jsp </welcome-file> <!--用來指定首頁檔名稱.我們可以用<welcome-file>指定幾個首頁,而伺服器會依照設定的順序來找首頁.-->
  62. <welcome-file>/index.html </welcome-file>
  63. </welcome-file-list>
  64. <!---------------------------------------------------配置錯誤頁面------------------------------------------------------>
  65. <error-page> <!--將錯誤程式碼(Error Code)或異常(Exception)的種類對應到web應用資源路徑.-->
  66. <error-code>404 </error-code> <!--HTTP Error code,例如: 404、403-->
  67. <location>error.html </location> <!--用來設定發生錯誤或異常時要顯示的頁面-->
  68. </error-page>
  69. <error-page>
  70. <exception-type>java.lang.Exception </exception-type> <!--設定可能會發生的java異常型別,例如:java.lang.Exception-->
  71. <location>ExceptionError.html </location> <!--用來設定發生錯誤或異常時要顯示的頁面-->
  72. </error-page>
  73. </web-app>

二  spring-mvc.xml

需要實現基本功能的配置 
1 配置 <mvc:annotation-driven/>
2 配置 <context:component-scan base-package="com.springmvc.controller"/> //配置controller的注入
3 配置檢視解析器

<mvc:annotation-driven/>   相當於註冊了DefaultAnnotationHandlerMapping(對映器)和AnnotationMethodHandlerAdapter(介面卡)兩個bean.即解決了@Controller註解的使用前提配置。 

context:component-scan  對指定的包進行掃描,實現註釋驅動Bean定義,同時將bean自動注入容器中使用。即解決了@Controller標識的類的bean的注入和使用。


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:aop= "http://www.springframework.org/schema/aop"
  5. xmlns:mvc= "http://www.springframework.org/schema/mvc"
  6. xmlns:context= "http://www.springframework.org/schema/context"
  7. xmlns:tx= "http://www.springframework.org/schema/tx"
  8. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
  12. http://www.springframework.org/schema/aop
  13. http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
  14. http://www.springframework.org/schema/context
  15. http://www.springframework.org/schema/context/spring-context-4.1.xsd
  16. http://www.springframework.org/schema/mvc
  17. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  18. <!-- 1、配置對映器與介面卡 -->
  19. <mvc:annotation-driven> </mvc:annotation-driven>
  20. <!-- 2、檢視解析器 -->
  21. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  22. <span style="white-space:pre"> </span> <!-- 字首和字尾 -->
  23. <property name="prefix" value="/"/>
  24. <property name="suffix" value=".jsp"/>
  25. </bean>
  26. <!-- 3、自動掃描該包,使SpringMVC認為包下用了@controller註解的類是控制器  -->
  27. <context:component-scan base-package="com.rhzh.controller"/>
  28. </beans>

三  spring-mybatis.xml

需要實現基本功能的配置 
1 配置 <context:component-scan base-package="com.rhzh"/> //自動掃描,將標註Spring註解的類自動轉化Bean,同時完成Bean的注入
2 載入資料資源屬性檔案
3 配置資料來源  三種資料來源的配置方式 http://blog.csdn.net/yangyz_love/article/details/8199207
4 配置sessionfactory
5 裝配Dao介面
6 宣告式事務管理 
7 註解事務切面 


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  4.     xmlns:aop= "http://www.springframework.org/schema/aop"
  5.     xmlns:context= "http://www.springframework.org/schema/context"
  6.     xmlns:tx= "http://www.springframework.org/schema/tx"
  7.     xsi:schemaLocation= "http://www.springframework.org/schema/beans
  8.         http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
  9.         http://www.springframework.org/schema/tx
  10.         http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
  11.         http://www.springframework.org/schema/aop
  12.         http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
  13.         http://www.springframework.org/schema/context
  14.         http://www.springframework.org/schema/context/spring-context-4.1.xsd">
  15. <!--1 自動掃描 將標註Spring註解的類自動轉化Bean-->
  16. <context:component-scan base-package="com.rhzh" />
  17. <!--2 載入資料資源屬性檔案 -->
  18. <bean id="propertyConfigurer"
  19. class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  20. <property name="location" value="classpath:jdbc.properties" />
  21. </bean>
  22. <span style="white-space:pre"> <!-- 3 配置資料來源 --> </span>
  23. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  24. destroy-method= "close">
  25. <property name="driverClassName" value="${driver}" />
  26. <property name="url" value="${url}" />
  27. <property name="username" value="${username}" />
  28. <property name="password" value="${password}" />
  29. <!-- 初始化連線大小 -->
  30. <property name="initialSize" value="${initialSize}"> </property>
  31. <!-- 連線池最大數量 -->
  32. <property name="maxActive" value="${maxActive}"> </property>
  33. <!-- 連線池最大空閒 -->
  34. <property name="maxIdle" value="${maxIdle}"> </property>
  35. <!-- 連線池最小空閒 -->
  36. <property name="minIdle" value="${minIdle}"> </property>
  37. <!-- 獲取連線最大等待時間 -->
  38. <property name="maxWait" value="${maxWait}"> </property>
  39. </bean>
  40. <!-- 4   配置sessionfactory -->
  41. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  42. <property name="dataSource" ref="dataSource" />
  43. <!-- 自動掃描mapping.xml檔案 -->
  44. <property name="mapperLocations" value="classpath:com/rhzh/mapping/*.xml"> </property>
  45. </bean>
  46. <!-- 5 裝配dao介面 -->
  47. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  48. <property name="basePackage" value="com.rhzh.dao" /> <!-- DAO介面所在包名,Spring會自動查詢其下的類 -->
  49. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"> </property>
  50. </bean>
  51. <!-- 6、宣告式事務管理 -->
  52. <bean id="transactionManager"
  53. class= "org.springframework.jdbc.datasource.DataSourceTransactionManager">
  54. <property name="dataSource" ref="dataSource" />
  55. </bean>
  56.   <!-- 7、註解事務切面 --> <span style="font-family: Arial, Helvetica, sans-serif;"> </span> <pre name="code" class="html"> <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
  

 
 
下面是需要引入的兩個資源屬性檔案:

jdbc.properties


  
  1. 相關推薦

    ssmxml介紹

    這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~

    ssmxml檔案自動提示

    設定xml 檔案的程式碼提示功能 開啟Eclipse 依次選擇Window > Preferences > Xml > Editor > Content Assist > Auto activation >&nb

    ssm整合Mybatis可以掃描到放在mapper下面的xml文件的方法

    spa 兩種 clas direct style rec 文件 cto map 解決方法有兩種: 1、把*Mapper.xml文件放到resource文件夾下管理 2、pom配置一下編譯xml文件 <resources>

    idea+maven+Struts2 之struts.xml標籤介紹

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"

    SSM 生成mapperxml檔案:未能解析對映資源:“檔案巢狀異常

    錯誤日記我就網上隨便找個貼著: 錯誤一: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path res

    SSM 生成mapperxml文件:未能解析映射資源:“文件嵌套異常

    file except cat info lse tin 未能 builder pan 錯誤日記我就網上隨便找個貼著: 錯誤一: org.springframework.beans.factory.BeanCreationException: Error creating

    SSM進行註解式和XML配置式事務管理

    場景 前面實現SSM簡單整合以及CRUD參照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/85161018 SSM中配置事務管理所需jar包: https://download.csdn.net/downloa

    cocos2d-x XML解析與數據存儲

    lba false 網上 unsigned failed popu new ccm cfile 一不小心就玩了一周的遊戲了。哎。玩的時候時間過得總是這麽快。。。 於是今天決定看一下之前不怎麽非常熟悉的XML;(之前做遊戲時數據的儲存用到過XML,但這塊是還有一個同事在做

    ssm從頁面到controller和數據庫出現亂碼問題的解決

    亂碼問題 數據 ebo content ont pos mysq url work 1.確保項目編碼為utf8,點擊項目右鍵,點擊properties 2.確保數據庫編碼為utf8,以MySQL為例,可到mysql目錄下,my.ini文件中修改後,重啟mysql服務

    SSMexcel的導出以及poi的使用

    app nds flush getc tor clas contain form response 首先,這是我對自己的需求而使用的邏輯,若有可以完美的地方方便告訴下小白。 MAVEN <dependency> <groupI

    AndroidXML文件的序列化生成與解析

    eval test director 南海 attribute trac cli found dir 首先,我把Person的實體類 package net.loonggg.test; public class Person { privat

    spring---aop(6)---Spring AOPProxyFactoryBean介紹

    except trace col fine erl 參數 owa per face 寫在前面   這篇文章裏面就要說說Spring自己的AOP,搞清楚哪種方式是Spring自己實現的AOP,哪種方式是Spring引入aspectj的AOP。 簡單例子   Spring

    java xml轉換為json對象

    xml轉換 serial () hid cti mave tostring code ace 1、前提須要jar包: json-lib-2.4-jdk15.jar 和 xom-1.2.5.jar ,maven 倉庫: net.sf.jso

    C# Asp.netxml串與對象互相轉換

    try res return class 類型 mls log throw XML public class XmlUtil { #region 反序列化 /// <summary> /// 將XML字符

    【Visual Studio】Visual C# XML註釋的使用(含註釋在開發時顯示換行)

    title visual toc sum .net art detail 段落 結構 為函數方法註釋說明要用到 xml 語句 <summary> 段落說明 </summary> 、<para> 新段示例說明 </para>、&

    JavaXML文件的讀取與寫入

    讀取 聯系 過程 樹形 樹形結構 java 以及 ade 文件的 表現:以 “.xml”為文件擴展名的文件; 存儲:樹形結構; 用途:存儲以及傳遞信息;利用相同的XML文件將不同的系統聯系起來; 在Java程序中如何獲取XML文件的內容? 在Java程序中讀取XML文

    python之路_day70_djangocookie介紹

    其中 模板語言 請求 tabpanel role pytho con sed signed 一、django模板系統 1、母板   為其他子模板文件所共有的內容文件,各子模板的不同部分通過模板語言占位。註意:我們通常會在母板中定義頁面專用的CSS塊和JS塊,方便子頁面替換,

    DjangoORM介紹和字段及字段參數

    時也 特殊 nothing duration sys cal 概念 目錄 gre Object Relational Mapping(ORM) ORM介紹 ORM概念 對象關系映射(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向

    C++STL介紹

    沒有 添加數據 pan swap ring 不同之處 結果 allocator 新的 轉載自:https://blog.csdn.net/hhu1506010220/article/details/51971642 介紹 這篇文章的目的是為了介紹std::vector,如何

    SSMXML和WEB.XML的配置

    erl 視圖 核心 contex select 3.0 agg oct eth 顯示層(handler/controller):   request請求到springmvc的前端控制器,從處理器映射器找相應的handler(用@RequestMapping(" ")標註,