因?yàn)槠鶈?wèn)題兔甘,《IDEA上快速搭建基于maven的Spring MVC項(xiàng)目步驟》到具體框架配置部分后面內(nèi)容轉(zhuǎn)到這篇下繼續(xù)衣屏。
具體的配置信息基本上都放了截圖和引用载萌。
這里先給出demo項(xiàng)目的基本結(jié)構(gòu)截圖妒穴,實(shí)際項(xiàng)目結(jié)構(gòu)目錄可能會(huì)有所不同搪哪,但基本的結(jié)構(gòu)關(guān)系應(yīng)該大同小異靡努。末尾還放了服務(wù)器啟動(dòng)后的項(xiàng)目目錄結(jié)構(gòu)。
這里再貼一下mybaits的配置文件和數(shù)據(jù)源配置晓折,都是基本的配置惑朦。
1、spring-datasource.xml的DEMO詳情
<?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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" 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-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 一. 創(chuàng)建DataSource對(duì)象 --> <
!--1.1 引入外部的一些資源文件 location 資源文件的路徑 -->
<context:property-placeholder location="/WEB-INF/configs/spring/jdbc.properties"/>
<!-- 1.2 創(chuàng)建DataSource對(duì)象 -->
<bean id="mysqlDataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="${jdbc.mysql.driver}"></property> <property name="url" value="${jdbc.mysql.url}"></property> <property name="username" value="${jdbc.mysql.username}"></property> <property name="password" value="${jdbc.mysql.password}"></property> </bean>
<!-- 二. 創(chuàng)建SqlSessionFactory對(duì)象 -->
<bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 設(shè)置數(shù)據(jù)源屬性 --> <property name="dataSource" ref="mysqlDataSource"></property>
<!-- 配置mybatis的配置文件的路徑 可選 --> <property name="configLocation" value="/WEB-INF/configs/spring/mybatis_config.xml"></property>
<!-- 配置myabtis的mapper文件的路徑 可選 默認(rèn) mapper.xml文件的路徑為 和mapper接口同包同名的 -->
<property name="mapperLocations"> <list> <value>classpath:/mybaits/**/**/*Mapper.xml</value> </list> </property>
</bean>
<!-- 三.創(chuàng)建mapper對(duì)象 會(huì)自動(dòng)根據(jù)配置 將指定包下的mapper對(duì)象創(chuàng)建出來(lái) mapper對(duì)象的bean的名字 默認(rèn)為mapper接口的名字首字母變成小寫 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.demo.dao"></property>
<!-- 以下配置 不要添加 但是要保證ioc容器中SqlSessionFactory對(duì)象的bean 的名字為 sqlSessionFactory-->
<!-- <property name="sqlSessionFactory" ref="sqlsessionFactory"></property> -->
</bean>
<!-- 四. 做事務(wù)處理 --> <!-- 4.1 創(chuàng)建事務(wù)管理的對(duì)象 負(fù)責(zé) 事務(wù)的開啟 提交 回滾 關(guān)閉等等操作 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="mysqlDataSource"></property>
</bean>
<!-- 添加事務(wù)的注解驅(qū)動(dòng) -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
2已维、mybatis_config.xml的DEMO詳情
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<plugins>
<!-- com.github.pagehelper為PageHelper類所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 設(shè)置數(shù)據(jù)庫(kù)分頁(yè)插件 --> <property name="helperDialect" value="mysql"/>
<!-- 合理化分頁(yè) --> <property name="reasonable" value="true"/>
</plugin>
</plugins>
</configuration>
到這里實(shí)際上基本都配好了行嗤,接下來(lái)就是寫寫具體的代碼測(cè)一下實(shí)際情況了。
因?yàn)槲乙呀?jīng)跑通了垛耳,所以這里就直接給出demo的簡(jiǎn)單截圖
demo項(xiàng)目基本完工了飘千,接下來(lái)就是配置啟動(dòng)服務(wù)器堂鲜,因?yàn)椴皇莃oot沒(méi)有內(nèi)置,不能直接跑
按截圖逐步配置即可护奈,可按自己的需求調(diào)整相關(guān)設(shè)置缔莲。
完成以后就可以選擇自己配置的tomcat直接啟動(dòng)或者debug啟動(dòng)項(xiàng)目啦。
最后我們看一下實(shí)際效果霉旗,三個(gè)不同頁(yè)面都o(jì)k了痴奏,請(qǐng)求轉(zhuǎn)發(fā)頁(yè)面跳轉(zhuǎn)都沒(méi)有問(wèn)題蛀骇。
總結(jié):
到這里spring mvc的demo就基本完工了,當(dāng)然读拆,這只是一個(gè)很基礎(chǔ)的demo擅憔,很多東西沒(méi)有用到,作為一個(gè)基礎(chǔ)spring mvc demo檐晕,但它已經(jīng)五臟俱全了暑诸,剩下的就是根據(jù)實(shí)際需要添加、調(diào)整和使用了辟灰。
實(shí)際上在pom中添加的json轉(zhuǎn)化个榕、分頁(yè)插件、參數(shù)校驗(yàn)芥喇、單元測(cè)試等依賴都沒(méi)有用到西采,也沒(méi)有在項(xiàng)目中使用過(guò)濾器、攔截器继控、jms消息中間件苛让、緩存數(shù)據(jù)庫(kù)redis等等,后面有時(shí)間希望自己再逐步添加練練手湿诊,很多東西實(shí)際工作中使用的機(jī)會(huì)少狱杰,也沒(méi)有那么多時(shí)間給你慢慢調(diào),所以厅须,要想掌握還得自己練習(xí)仿畸。[過(guò)濾器、攔截器我后面自己又專門要記錄一篇《過(guò)濾器朗和、攔截器的區(qū)別和配置使用簡(jiǎn)例》]
總的來(lái)說(shuō)错沽,在自己從無(wú)到有創(chuàng)建這個(gè)demo的過(guò)程中,還是遇到了不少問(wèn)題眶拉,主要是有些點(diǎn)使用頻率低疏忽了千埃,比如el表達(dá)式引入等等,希望自己繼續(xù)努力忆植,知行合一放可。
補(bǔ)充:
服務(wù)器啟動(dòng)后的項(xiàng)目目錄結(jié)構(gòu)
具體jsp的class文件的話,因?yàn)槲沂莍dea關(guān)聯(lián)的朝刊,所以在用戶盤下耀里,如果是把項(xiàng)目放到tomcat中的,則路徑不同拾氓,這點(diǎn)的話可參考網(wǎng)上這位兄弟的文章 《web項(xiàng)目中idea中jsp被編譯后的class與java文件放在哪里》冯挎,我試過(guò)。他說(shuō)的對(duì)咙鞍。