Spring整合SpringMVC

搭建maven環(huán)境

項目框架視圖

配置Spring applicationContext.xml

ssm框架思路是由Spring框架作為基干,整合SpringMVC和Mybatis,首先就是要寫Spring的配置文件

  • 開啟spring注解掃描 <context:component-scan base-package="">
  • 不掃描controller注解 交給SpringMVC處理
<?xml version="1.0" encoding="UTF-8"?>
<!--約束-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            ">

<!--    開啟spring注解的掃描 controller 不需要掃描-->
    <context:component-scan base-package="cn.cai">
<!--    將controller層交給 springmvc掃描-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
</beans>

測試可用后再進行springmvc的配置


配置SpringMVC
配置web.xml
  • 先在web.xml中配置dispatcherServlet 前置控制器 攔截所有客戶端頁面的請求
  • 配置characterEncodingFilter springmvc的字符編碼過濾器
<servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
</filter>
<filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
配置springmvc.xml
  • 開啟掃描 只掃描org.springframework.stereotype.Controller下的注解
  • 配置視圖解析器internalResourceViewResolver 配置視圖的資源路徑以及轉到什么類型的文件
  • 將dispatcherServlet攔截的靜態(tài)資源放行
  • 開啟mvc注釋支持
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">

    <!--開啟掃描器 掃描controller標簽-->
    <context:component-scan base-package="cn.cai..controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--開啟視圖解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/views/"/>
        <property name="suffix" value=".jsp" />
    </bean>

    <!--靜態(tài)資源放行-->
    <mvc:resources location="/resources/images/" mapping="/resources/images/**"/>
    <mvc:resources location="/resources/css/" mapping="/resources/css/**"/>
    <mvc:resources location="/resources/js/" mapping="/resources/js/**"/>

    <!--開啟mvc注解支持-->
    <mvc:annotation-driven/>
</beans>

測試mvc可用后進行下一步配置


開啟spring監(jiān)聽器

tomcat開啟后會通過web.xml讀取springmvc的配置文件
可是spring的配置文件雖然寫完了 卻讀取不了 于是配置一個監(jiān)聽器 寫在web.xml中 在tomcat啟動時讀取spring的配置文件
spring自己寫了一個監(jiān)聽類 繼承自ServletContextListener 生命周期與tomcat一致
org.springframework.web.context.ContextLoaderListener

<!--    spring監(jiān)聽器 只會加載WEB/INF下的applicationContext.xml 需要另外配置 配置文件路徑-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<!--    配置了spring的配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

整個流程
  1. 配置spring 關閉對controller的掃描 交由springmvc處理
  2. 配置springmvc
    2.1 配置DispatcherServlet 前置控制器(web.xml)
    2.2 配置CharacterEncodingFilter 字符編碼過濾器 (web.xml)
    2.3 開啟掃描(springmvc.xml)
    2.4 配置InternalResourceViewResolver視圖解析器(springmvc.xml)
    2.5 放行前端控制器攔截的靜態(tài)資源(springmvc.xml)
    2.6 開啟springmvc注解的支持(springmvc.xml)
  3. 配置ContextLoaderListener監(jiān)聽器 (web.xml)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末迁匠,一起剝皮案震驚了整個濱河市同欠,隨后出現的幾起案子樟氢,更是在濱河造成了極大的恐慌遇绞,老刑警劉巖叶摄,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓢湃,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機浮庐,發(fā)現死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柬焕,“玉大人审残,你說我怎么就攤上這事“呔伲” “怎么了搅轿?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長富玷。 經常有香客問我璧坟,道長,這世上最難降的妖魔是什么赎懦? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任雀鹃,我火速辦了婚禮,結果婚禮上励两,老公的妹妹穿的比我還像新娘黎茎。我一直安慰自己,他們只是感情好当悔,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布工三。 她就那樣靜靜地躺著迁酸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俭正。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天焙畔,我揣著相機與錄音掸读,去河邊找鬼。 笑死宏多,一個胖子當著我的面吹牛儿惫,可吹牛的內容都是我干的。 我是一名探鬼主播伸但,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肾请,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了更胖?” 一聲冷哼從身側響起铛铁,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎却妨,沒想到半個月后饵逐,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡彪标,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年倍权,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捞烟。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡薄声,死狀恐怖,靈堂內的尸體忽然破棺而出题画,到底是詐尸還是另有隱情默辨,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布婴程,位于F島的核電站廓奕,受9級特大地震影響,放射性物質發(fā)生泄漏档叔。R本人自食惡果不足惜桌粉,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衙四。 院中可真熱鬧铃肯,春花似錦、人聲如沸传蹈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挑格,卻和暖如春咙冗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漂彤。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工雾消, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挫望。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓立润,卻偏偏與公主長得像,于是被迫代替她去往敵國和親媳板。 傳聞我的和親對象是個殘疾皇子桑腮,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354