ssm框架配置(spring+springMVC+Mybatis)

簡(jiǎn)介:

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開(kāi)源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。

Spring  Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來(lái)實(shí)例化對(duì)象。也可以稱之為項(xiàng)目中的粘合劑?! pring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個(gè)對(duì)象,而是讓Spring框架幫你來(lái)完成這一切。  ?

SpringMVC  SpringMVC在項(xiàng)目中攔截用戶請(qǐng)求,它的核心Servlet即DispatcherServlet承擔(dān)中介或是前臺(tái)這樣的職責(zé),將用戶請(qǐng)求通過(guò)HandlerMapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作。SpringMVC相當(dāng)于SSH框架中struts?! ? ?

mybatis  mybatis是對(duì)jdbc的封裝,它讓數(shù)據(jù)庫(kù)底層操作變的透明。mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開(kāi)的。mybatis通過(guò)配置文件關(guān)聯(lián)到各實(shí)體類的Mapper文件,Mapper文件中配置了每個(gè)類對(duì)數(shù)據(jù)庫(kù)所需進(jìn)行的sql語(yǔ)句映射。在每次與數(shù)據(jù)庫(kù)交互時(shí),通過(guò)sqlSessionFactory拿到一個(gè)sqlSession,再執(zhí)行sql命令。頁(yè)面發(fā)送請(qǐng)求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。?

1.web.xml配置

????1.1配置加載spring容器

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:spring/*.xml</param-value>

</context-param>

classpath和classpath*的區(qū)別:

classpath:只會(huì)到你的class路徑中查找找文件。

classpath*:不僅包含class路徑,還包括jar文件中(class路徑)進(jìn)行查找。

注意:?用classpath*:需要遍歷所有的classpath,所以加載速度是很慢的;因此,在規(guī)劃的時(shí)候,應(yīng)該盡可能規(guī)劃好資源文件所在的路徑,盡量避免使用classpath*。classpath*的使用:當(dāng)項(xiàng)目中有多個(gè)classpath路徑,并同時(shí)加載多個(gè)classpath路徑下(此種情況多數(shù)不會(huì)遇到)的文件,*就發(fā)揮了作用,如果不加*,則表示僅僅加載第一個(gè)classpath路徑?

? ? 1.2spring監(jiān)聽(tīng)器

?<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>


? ? 1.3配置前端控制器

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:spring/springmvc.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>/</url-pattern>

<!-- <url-pattern>*.do</url-pattern>-->

<!-- <url-pattern>*.htm</url-pattern>-->

<!-- <url-pattern>*.action</url-pattern>-->

</servlet-mapping>

url-pattern路徑配置細(xì)節(jié):

/* 表示匹配所有路徑 包括靜態(tài)資源 (不推薦), 這樣配置會(huì)導(dǎo)致所有的請(qǐng)求都經(jīng)過(guò)前端控制器,例如:配置了歡迎頁(yè)index.jsp 會(huì)報(bào)404錯(cuò)誤,因?yàn)閖sp也會(huì)由前端控制器解析,而hander (controller)沒(méi)有配置 會(huì)找不到。并且不支持restFul風(fēng)格的URL。

/? 也表示所有路徑,可以實(shí)現(xiàn)rest風(fēng)格,也會(huì)攔截靜態(tài)資源,推薦兩種解決方案。

????方案一:

? ??????激活Tomcat的defaultServlet來(lái)處理靜態(tài)文件

????????<servlet-mapping>

????????<servlet-name>default</servlet-name>

????????<url-pattern>*.jpg</url-pattern>

????????</servlet-mapping>

????????<servlet-mapping>

????????<servlet-name>default</servlet-name>

????????<url-pattern>*.js</url-pattern>

????????</servlet-mapping>

????????<servlet-mapping>

????????<servlet-name>default</servlet-name>

????????<url-pattern>*.css</url-pattern>

????????</servlet-mapping>

????????特點(diǎn):1.? 要配置多個(gè),每種文件配置一個(gè)。

? ? ? ? ? ? ? ? ? ?2.? 要寫在DispatcherServlet的前? ? ? 面, 讓 defaultServlet先攔截請(qǐng)求,這樣請(qǐng)求就不會(huì)進(jìn)入Spring了。

? ? ? ? ? ? ? ? ? ?3. 高性能。

? ? 方案二:

? ??????<mvc:resources mapping="/images/**" location="/images/" />?

.do? .htm .action? 這樣配置不支持rest風(fēng)格,也可以解決靜態(tài)資源被攔截的問(wèn)題。

? ? 1.4配置字符集編碼

<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>



web.xml

2 spring.xml配置

偷懶


spring.xml

3 springmvc.xml


springmvc.xml
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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