[github項(xiàng)目地址](https://github.com/actor-t/springboot-mapper-redis)?
# 前言
簡介:springboot-mapper-redis是一個(gè)基于Spring Boot & MyBatis & redis的maven種子系統(tǒng),用于快速構(gòu)建中小型API、RESTful API項(xiàng)目。?
主要版本:springboot采用2.x版本、mybatis3.4X版本、通用mapper使用4.X版本
# 文檔說明
1、集成MyBatis、通用Mapper插件、PageHelper分頁插件,實(shí)現(xiàn)單表業(yè)務(wù)零SQL,可以說學(xué)會使用這套架構(gòu)將節(jié)約你百分之五十的開發(fā)時(shí)間!?
2、集成Druid數(shù)據(jù)庫連接池與監(jiān)控,默認(rèn)用戶名admin、密碼123456,用于監(jiān)控業(yè)務(wù)系統(tǒng)的sql使用情況等?
3、使用FastJsonHttpMessageConverter,提高JSON序列化速度,用于redis對象的轉(zhuǎn)換等?
4、提供基礎(chǔ)方法基礎(chǔ)服務(wù)的封裝,對于單表的增刪查改,包括多條件查詢,分頁查詢都已經(jīng)封裝好,根據(jù)代碼生成器生成對應(yīng)的Model、Mapper、?
? MapperXML、Service、ServiceImpl、Controller等基礎(chǔ)代碼,另外,使用模板也有助于保持團(tuán)隊(duì)代碼風(fēng)格的統(tǒng)一?
5、統(tǒng)一響應(yīng)結(jié)果封裝及生成工具、統(tǒng)一異常處理、簡單的接口簽名認(rèn)證?
6、使用redis作為系統(tǒng)的緩存架構(gòu)?
7、攔截器、過濾器、監(jiān)聽器等實(shí)現(xiàn)跨域、簽名、token認(rèn)證等?
8、websocket的使用事例?
9、定時(shí)器scheduling的使用?
10、系統(tǒng)日志的記錄,可根據(jù)日志級別,打印sql日志,用于快速線上定位問題?
11、引入HuTool作為通用工具包?
12、阿里云短信工具?
# 碼上開始
1、clone項(xiàng)目?
2、修改coreconstant里的常量?
3、修改日志目錄pom文件?
4、修改你的項(xiàng)目名和常量名一樣?
5、盡情享用.......?
# 參考技術(shù)文檔
[通用Mapper文檔](https://mapperhelper.github.io/docs/7.use330/)?
[MyBatis查看官方中文文檔 ](http://www.mybatis.org/mybatis-3/zh/index.html)?
[MyBatis 分頁插件 PageHelper](https://pagehelper.github.io/)?
[Druid Spring Boot Starter](https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter/)?
[Fastjson](https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5)?
[前端參數(shù)簽名怎么生成,建議使用 JWT](http://www.itdecent.cn/p/576dbf44b2ae)?
[Hutool](http://hutool.mydoc.io/)?
[通用mapper更新地址]( https://github.com/abel533/Mapper/wiki/changelog)?
# 開發(fā)建議
1、表名,建議使用小寫,多個(gè)單詞使用下劃線拼接?
2、Model內(nèi)成員變量建議與表字段數(shù)量對應(yīng),如需擴(kuò)展成員變量(比如連表查詢)建議創(chuàng)建DTO,否則需在擴(kuò)展的成員變量上加@Transient注解,詳情見通用Mapper插件文檔說明?
3、建議業(yè)務(wù)失敗直接使用ServiceException("message")拋出,由統(tǒng)一異常處理器來封裝業(yè)務(wù)失敗的響應(yīng)結(jié)果,比如throw new ServiceException("該手機(jī)號已被注冊"),會直接被封裝為{"code":400,"message":"該手機(jī)號已被注冊"}返回,無需自己處理,盡情拋出?
3、需要工具類的話建議先從apache-commons-*、hutool和guava中找,實(shí)在沒有再造輪子或引入類庫,盡量精簡項(xiàng)目?
4、開發(fā)規(guī)范建議遵循阿里巴巴Java開發(fā)手冊(最新版下載)?
5、建議使用的eclipse里的api插件工具,生成統(tǒng)一風(fēng)格文檔,保證代碼的規(guī)范性?
# 特別感謝
框架是站在“巨人”的肩膀上誕生的,特別感謝通用mapper的原作者(@土豆lihengming),框架最初很多借鑒了他的種子框架,
尤其是代碼生成部分,這部風(fēng)自己只在其基礎(chǔ)上做了些許修改,而其開源的通用mapper更是大大節(jié)約了我這種低端碼農(nóng)的開發(fā)工作量,
有更多的時(shí)間約妹打球啦哈哈哈哈。?
經(jīng)過一年多的項(xiàng)目實(shí)踐,更新迭代了mapper版本,豐富了工具類和通用服務(wù)方法、引入了socket和阿里云短信、itexpdf工具、加入了redis緩存框架等;
#溫馨提示
歡迎廣大碼農(nóng)clone使用、水平有限,框架中如有不足還望輕噴,同時(shí)也歡迎大家積極貢獻(xiàn),打造一個(gè)更加完美的開源微服務(wù)框架!?
[項(xiàng)目地址](https://github.com/actor-t/springboot-mapper-redis)?
如有疑慮歡迎咨詢qq:2411559022?