我是如何從0到1搭建一個(gè)公司的后臺(tái)管理系統(tǒng)的

CompanyManager項(xiàng)目簡(jiǎn)介

該項(xiàng)目的搭建環(huán)境:
項(xiàng)目管理:maven
框架:spring叨粘、springmvc、mybatis雀久、easyui
數(shù)據(jù):mysql
主要用途:實(shí)現(xiàn)了用戶管理、菜單管理、部門(mén)管理剂桥、理財(cái)管理、理財(cái)報(bào)表属提、待辦管理权逗、字典管理等多個(gè)功能美尸,可作為有具體需要的朋友提供參考的demo,也可作為新手學(xué)習(xí)的demo斟薇。
碼云地址:https://git.oschina.net/xi_fan/CompanyManager.git

目前該項(xiàng)目已經(jīng)搭建在騰訊云上师坎,有需要的朋友可以登錄訪問(wèn):http://123.207.236.102:8080/ssm_template/pages/login.jsp
超級(jí)管理員用戶名:system
超級(jí)管理員密碼:123


一、主要板塊講解:


1堪滨、用戶管理板塊

需求說(shuō)明:

  • 該項(xiàng)目的使用角色可分為三個(gè):分別為一般用戶胯陋、系統(tǒng)管理員、超級(jí)管理員袱箱;
  • 權(quán)限管理:超級(jí)管理員具有所有的權(quán)限遏乔,包括添加、修改发笔、刪除系統(tǒng)管理員等權(quán)限盟萨,而系統(tǒng)管理員具有管理一般用戶的權(quán)限,遵守現(xiàn)實(shí)中上級(jí)管理下級(jí)的原則了讨。

用戶管理板塊具體實(shí)現(xiàn):

  • 1捻激、先從dao層說(shuō)起:在cn.springmvc.dao中搭建好UserInfoDao,該類(lèi)是一個(gè)接口前计,中包含著對(duì)user相關(guān)信息的增刪查改胞谭。具體的可看項(xiàng)目中cn.springmvc.dao.UserInfoDao的實(shí)現(xiàn)
  • 2 、在對(duì)應(yīng)的目錄下配置好UserInfoDao的Mapper映射文件残炮,實(shí)現(xiàn)具體函數(shù)在mybatis中實(shí)現(xiàn)對(duì)Mysql的操作韭赘。具體的可看項(xiàng)目中cn.springmvc.dao.UserInfoMapper的實(shí)現(xiàn)
  • 3 、在cn.springmvc.service中搭建好對(duì)應(yīng)的service接口势就,并在cn.springmvc.service.impl中實(shí)現(xiàn)具體的service層功能泉瞻。具體的可看項(xiàng)目中cn.springmvc.service.impl.UserInfoServiceImpl的實(shí)現(xiàn)
  • 4 、在cn.springmvc.controller中實(shí)現(xiàn)對(duì)應(yīng)的控制器具體的可看項(xiàng)目中cn.springmvc.service.controller.UserInfoController的實(shí)現(xiàn)

2苞冯、菜單管理板塊

需求說(shuō)明:

  • 該項(xiàng)目的菜單主要可以分為兩種袖牙,一是項(xiàng)目系統(tǒng)的菜單,需要編寫(xiě)相應(yīng)的代碼進(jìn)行連接舅锄,二是web的菜單鞭达,只要提供鏈接既可以點(diǎn)擊后實(shí)現(xiàn)跳轉(zhuǎn)。
  • 主要實(shí)現(xiàn)菜單的crud皇忿。

菜單管理板塊具體實(shí)現(xiàn):

  • 項(xiàng)目的分層以及具體實(shí)現(xiàn)跟用戶管理板塊類(lèi)似畴蹭,可以直接查看源碼。

在這里我要談?wù)勎沂侨绾芜M(jìn)行mybatis的物理分頁(yè)的:

學(xué)過(guò)mybatis的都知道鳍烁,mybatis使用RowBounds實(shí)現(xiàn)的分頁(yè)是邏輯分頁(yè),也就是先把數(shù)據(jù)記錄全部查詢出來(lái),然在再根據(jù)offset和limit截?cái)嘤涗浄祷貫榱嗽跀?shù)據(jù)庫(kù)層面上實(shí)現(xiàn)物理分頁(yè),如果我們不想改變?cè)瓉?lái)MyBatis的函數(shù)邏輯,又實(shí)現(xiàn)物理分頁(yè)叨襟,可以編寫(xiě)plugin截獲MyBatis Executorstatementhandler,重寫(xiě)SQL來(lái)執(zhí)行查詢。

那么我是如何在整個(gè)項(xiàng)目中進(jìn)行實(shí)現(xiàn)的呢幔荒?

我所做的就是在view層糊闽、controller層以及Model層三個(gè)層中傳遞一個(gè)PageInfo對(duì)象梳玫,該對(duì)象綁定著分頁(yè)的信息。

在controller層:

 @RequestMapping(value = "/queryUser")
 public String queryUser(Model    model,            @ModelAttribute(value = "pageInfo") PageInfo<UserInfo> pageInfo,@ModelAttribute(value = "user") UserInfo userInfo, @ModelAttribute(value = "dept") DeptInfo dept)  {     //實(shí)現(xiàn)業(yè)務(wù) }

在service層:將PageInfo打包成RowBounds對(duì)象后傳給dao層

public ArrayList<UserInfo> queryUsers(Map<String, String> map,PageInfo<UserInfo> pageInfo) {
return userInfoDao.queryUsers(new     RowBounds(pageInfo.getFromRecord(),pageInfo.getPageSize()), map);}

在mybatis配置文件中配置plugin:interceptor屬性指向攔截器右犹;

<plugins>
    <plugin interceptor="cn.springmvc.utildao.PaginationInterceptor" />
</plugins>

而PaginationInterceptor可以查看項(xiàng)目中cn.springmvc.utildao的源碼提澎,
對(duì)于主要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的CRUD的mapper沒(méi)有任何變化。

Note: 其它板塊和以上兩個(gè)差不多念链,具體的可以查看源碼E渭伞!钓账!


二碴犬、在ie以及360兼容模式下出現(xiàn)json數(shù)據(jù)被瀏覽器攔截并且直接請(qǐng)求保存的問(wèn)題:

在springmvc-servlet文件中添加:

<!-- json格式配置 -->
<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                    <value>application/json;charset=UTF-8</value>
                </list>
            </property>
            <property name="objectMapper">
                <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                    <property name="serializationInclusion">
                        <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
                    </property>
                    <!-- 
                    <property name="dateFormat">
                        <bean class="java.text.SimpleDateFormat">
                            <constructor-arg value="yyyy-MM-dd HH:mm:ss"/>
                        </bean>
                    </property> -->
                </bean>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

便可以解決該問(wèn)題。


Note: 歡迎有興趣的小伙伴們一起為該項(xiàng)目添加不一樣的色彩0鹉骸7!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啦粹,一起剝皮案震驚了整個(gè)濱河市偿荷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唠椭,老刑警劉巖跳纳,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贪嫂,居然都是意外死亡寺庄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)力崇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)斗塘,“玉大人,你說(shuō)我怎么就攤上這事亮靴♀擅耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵茧吊,是天一觀的道長(zhǎng)贞岭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)搓侄,這世上最難降的妖魔是什么瞄桨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮讶踪,結(jié)果婚禮上讲婚,老公的妹妹穿的比我還像新娘。我一直安慰自己俊柔,他們只是感情好筹麸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雏婶,像睡著了一般物赶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上留晚,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天酵紫,我揣著相機(jī)與錄音,去河邊找鬼错维。 笑死奖地,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赋焕。 我是一名探鬼主播参歹,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼隆判!你這毒婦竟也來(lái)了犬庇?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤侨嘀,失蹤者是張志新(化名)和其女友劉穎臭挽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體咬腕,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欢峰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涨共。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纽帖。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖煞赢,靈堂內(nèi)的尸體忽然破棺而出抛计,到底是詐尸還是另有隱情,我是刑警寧澤照筑,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布吹截,位于F島的核電站,受9級(jí)特大地震影響凝危,放射性物質(zhì)發(fā)生泄漏波俄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一蛾默、第九天 我趴在偏房一處隱蔽的房頂上張望懦铺。 院中可真熱鬧,春花似錦支鸡、人聲如沸冬念。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)急前。三九已至醒陆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裆针,已是汗流浹背刨摩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留世吨,地道東北人澡刹。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像耘婚,于是被迫代替她去往敵國(guó)和親罢浇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評(píng)論 25 707
  • 一個(gè)人受的訓(xùn)導(dǎo)越多边篮,他受到極端情況(好的機(jī)會(huì)己莺、壞的機(jī)會(huì))的影響就越少,因而當(dāng)他遇到世界上最大的好運(yùn)氣(像哲學(xué)家們稱...
    枯噠噠閱讀 309評(píng)論 0 0
  • 001. 首先鍛煉語(yǔ)言習(xí)慣戈轿。寫(xiě)文章跟說(shuō)話一樣凌受,寫(xiě)在紙上是文章,念在口里是語(yǔ)言思杯。語(yǔ)言習(xí)慣是有必要鍛煉的生活技能胜蛉,對(duì)于...
    順?biāo)橈L(fēng)閱讀 209評(píng)論 4 6