《大學(xué)》有云:茍日新 日日新 又日新。古人誠不我欺。時(shí)常有這種感覺:寫過一段時(shí)間的代碼,再回頭看時(shí),覺得有很多可以改進(jìn)的地方,這說明,我 tm 又進(jìn)步了。
今天分享一個(gè)后臺管理的 demo,順便重溫一下框架的搭建。
這個(gè) demo 使用了 SSM 搭建整體框架,前端使用了 Bootstrap 框架來快速構(gòu)建響應(yīng)式頁面。
技術(shù)框架:Spring、SpringMVC、MyBatis、Bootstrap
開發(fā)工具:Myeclipse2017CI、maven3.5、MySQL5.7、Tomcat8
運(yùn)行環(huán)境:jdk1.8
目錄結(jié)構(gòu):

train.png
使用框架可以幫助我們更好的理清思路,代碼層次結(jié)構(gòu)是怎樣一層一層調(diào)用的,每一層只負(fù)責(zé)自己的事的好處在哪,代碼一重復(fù)就要考慮提取公共部分,以達(dá)到提高復(fù)用性,松耦合的目的。
我們知道:
DispatcherServlet 只做任務(wù)的分派,
Controller 里處理請求返回視圖模型,
Service 層做具體業(yè)務(wù)的處理,
DAO 層只對數(shù)據(jù)庫。
前臺頁面使用JSP,EL表達(dá)式來做展示和簡單的邏輯處理
- 在這個(gè) demo 里,從包名也可以看出來分別是做什么用的:
cn.train.common ---> 工具包
cn.train.controller ---> 控制器
cn.train.dao ---> DAO層
cn.train.entity ---> 實(shí)體類
cn.train.service ---> 業(yè)務(wù)接口
cn.train.service.impl ---> 業(yè)務(wù)實(shí)現(xiàn)類 - 所有的配置資源都放在 resources 目錄下,
database.properties ---> 數(shù)據(jù)庫配置
log4jconf.properties ---> 日志
Spring.xml ---> 這幾個(gè)就不用說了吧
SpringMVC.xml
myBatisConfig.xml - 頁面靜態(tài)資源都放在 statics 目錄下
js
css
img
localjs ---> 因?yàn)橐肓饲岸丝蚣?,這里用 local 來表示自己寫的腳本和樣式
localcss ---> - jsp頁面都位 WEB-INF 的 pages 目錄下
jsp頁面提取了公共部分放在 common 目錄下,頁面內(nèi)只使用html標(biāo)簽和el表達(dá)式,層次非常清楚
ps :
所有頁面的跳轉(zhuǎn)都由 DispatcherServlet 來控制,
所有的請求路徑都帶有 .html 后綴,
由于一些請求使用了 ajax 異步加載,所以頁面顯得很清爽。
構(gòu)建一個(gè)demo的步驟:
- 導(dǎo)入 jar 包(如果使用 maven 則是配置 pom.xml)
- 配置 web.xml 文件
- 配置 spring.xml
- 配置 springMVC.xml
- 配置 myBatis.xml
- 配置資源文件,database.properties,log4j.properties 等等
- 設(shè)計(jì) pojo 實(shí)體類
- 編寫 DAO 層接口和 Mapper.xml
- 編寫 service 業(yè)務(wù)層
- 編寫 cotroller 控制器
- 視圖代碼:前臺 jsp 頁面
效果:
登錄頁面

bootstrap_login.gif
蒙板效果

bootstrap_train_modal.gif
分頁效果
用前端框架實(shí)現(xiàn)的,效果還不錯(cuò)

bootstrap_train_page.gif
搜索

bootstrap_train_search.gif
添加和刪除
這個(gè)功能是自己寫的,比較簡單

bootstrap_train_add.gif
響應(yīng)式效果

bootstrap_train_boot.gif