基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构(附源码)
作者:zheng
gitee.com/shuzheng/zheng/blob/master/README.md
前言
zheng項(xiàng)目不僅僅是一個(gè)開(kāi)發(fā)架構(gòu),而是努力打造一套從 前端模板 - 基礎(chǔ)框架 - 分布式架構(gòu) - 開(kāi)源項(xiàng)目 - 持續(xù)集成 - 自動(dòng)化部署 - 系統(tǒng)監(jiān)測(cè) - 無(wú)縫升級(jí) 的全方位J2EE企業(yè)級(jí)開(kāi)發(fā)解決方案。
項(xiàng)目介紹
基于Spring+SpringMVC+Mybatis分布式敏捷開(kāi)發(fā)系統(tǒng)架構(gòu),提供整套公共微服務(wù)服務(wù)模塊:內(nèi)容管理、支付中心、用戶(hù)管理(包括第三方)、微信平臺(tái)、存儲(chǔ)系統(tǒng)、配置中心、日志分析、任務(wù)和通知等,支持服務(wù)治理、監(jiān)控和追蹤,努力為中小型企業(yè)打造全方位J2EE企業(yè)級(jí)開(kāi)發(fā)解決方案。
組織結(jié)構(gòu)
zheng ├──?zheng-common?--?SSM框架公共模塊 ├──?zheng-admin?--?后臺(tái)管理模板 ├──?zheng-ui?--?前臺(tái)thymeleaf模板[端口:1000] ├──?zheng-config?--?配置中心[端口:1001] ├──?zheng-upms?--?用戶(hù)權(quán)限管理系統(tǒng) |????├──?zheng-upms-common?--?upms系統(tǒng)公共模塊 |????├──?zheng-upms-dao?--?代碼生成模塊,無(wú)需開(kāi)發(fā) |????├──?zheng-upms-client?--?集成upms依賴(lài)包,提供單點(diǎn)認(rèn)證、授權(quán)、統(tǒng)一會(huì)話管理 |????├──?zheng-upms-rpc-api?--?rpc接口包 |????├──?zheng-upms-rpc-service?--?rpc服務(wù)提供者 |????└──?zheng-upms-server?--?用戶(hù)權(quán)限系統(tǒng)及SSO服務(wù)端[端口:1111] ├──?zheng-cms?--?內(nèi)容管理系統(tǒng) |????├──?zheng-cms-common?--?cms系統(tǒng)公共模塊 |????├──?zheng-cms-dao?--?代碼生成模塊,無(wú)需開(kāi)發(fā) |????├──?zheng-cms-rpc-api?--?rpc接口包 |????├──?zheng-cms-rpc-service?--?rpc服務(wù)提供者 |????├──?zheng-cms-search?--?搜索服務(wù)[端口:2221] |????├──?zheng-cms-admin?--?后臺(tái)管理[端口:2222] |????├──?zheng-cms-job?--?消息隊(duì)列、任務(wù)調(diào)度等[端口:2223] |????└──?zheng-cms-web?--?網(wǎng)站前臺(tái)[端口:2224] ├──?zheng-pay?--?支付系統(tǒng) |????├──?zheng-pay-common?--?pay系統(tǒng)公共模塊 |????├──?zheng-pay-dao?--?代碼生成模塊,無(wú)需開(kāi)發(fā) |????├──?zheng-pay-rpc-api?--?rpc接口包 |????├──?zheng-pay-rpc-service?--?rpc服務(wù)提供者 |????├──?zheng-pay-sdk?--?開(kāi)發(fā)工具包 |????├──?zheng-pay-admin?--?后臺(tái)管理[端口:3331] |????└──?zheng-pay-web?--?演示示例[端口:3332] ├──?zheng-ucenter?--?用戶(hù)系統(tǒng)(包括第三方登錄) |????├──?zheng-ucenter-common?--?ucenter系統(tǒng)公共模塊 |????├──?zheng-ucenter-dao?--?代碼生成模塊,無(wú)需開(kāi)發(fā) |????├──?zheng-ucenter-rpc-api?--?rpc接口包 |????├──?zheng-ucenter-rpc-service?--?rpc服務(wù)提供者 |????└──?zheng-ucenter-web?--?網(wǎng)站前臺(tái)[端口:4441] ├──?zheng-wechat?--?微信系統(tǒng) |????├──?zheng-wechat-mp?--?微信公眾號(hào)管理系統(tǒng) |????|????├──?zheng-wechat-mp-dao?--?代碼生成模塊,無(wú)需開(kāi)發(fā) |????|????├──?zheng-wechat-mp-service?--?業(yè)務(wù)邏輯 |????|????└──?zheng-wechat-mp-admin?--?后臺(tái)管理[端口:5551] |????└──?zheng-ucenter-app?--?微信小程序后臺(tái) ├──?zheng-api?--?API接口總線系統(tǒng) |????├──?zheng-api-common?--?api系統(tǒng)公共模塊 |????├──?zheng-api-rpc-api?--?rpc接口包 |????├──?zheng-api-rpc-service?--?rpc服務(wù)提供者 |????└──?zheng-api-server?--?api系統(tǒng)服務(wù)端[端口:6666] ├──?zheng-oss?--?對(duì)象存儲(chǔ)系統(tǒng) |????├──?zheng-oss-sdk?--?開(kāi)發(fā)工具包 |????├──?zheng-oss-web?--?前臺(tái)接口[端口:7771] |????└──?zheng-oss-admin?--?后臺(tái)管理[端口:7772] ├──?zheng-message?--?實(shí)時(shí)通知系統(tǒng) |????├──?zheng-message-sdk?--?開(kāi)發(fā)工具包 |????├──?zheng-message-server?--?服務(wù)端[端口:8881,SocketIO端口:8882] |????└──?zheng-message-client?--?客戶(hù)端 ├──?zheng-shop?--?電子商務(wù)系統(tǒng) └──?zheng-demo?--?示例模塊(包含一些示例代碼等)├──?zheng-demo-rpc-api?--?rpc接口包├──?zheng-demo-rpc-service?--?rpc服務(wù)提供者└──?zheng-demo-web?--?演示示例[端口:9999]技術(shù)選型
后端技術(shù):
| Spring Framework | 容器 | http://projects.spring.io/spring-framework/ |
| SpringMVC | MVC框架 | http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc |
| Apache Shiro | 安全框架 | http://shiro.apache.org/ |
| Spring session | 分布式Session管理 | http://projects.spring.io/spring-session/ |
| MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
| MyBatis Generator | 代碼生成 | http://www.mybatis.org/generator/index.html |
| PageHelper | MyBatis物理分頁(yè)插件 | http://git.oschina.net/free/Mybatis_PageHelper |
| Druid | 數(shù)據(jù)庫(kù)連接池 | https://github.com/alibaba/druid |
| FluentValidator | 校驗(yàn)框架 | https://github.com/neoremind/fluent-validator |
| Thymeleaf | 模板引擎 | http://www.thymeleaf.org/ |
| Velocity | 模板引擎 | http://velocity.apache.org/ |
| ZooKeeper | 分布式協(xié)調(diào)服務(wù) | http://zookeeper.apache.org/ |
| Dubbo | 分布式服務(wù)框架 | http://dubbo.io/ |
| TBSchedule & elastic-job | 分布式調(diào)度框架 | https://github.com/dangdangdotcom/elastic-job |
| Redis | 分布式緩存數(shù)據(jù)庫(kù) | https://redis.io/ |
| Solr & Elasticsearch | 分布式全文搜索引擎 | http://lucene.apache.org/solr/ https://www.elastic.co/ |
| Quartz | 作業(yè)調(diào)度框架 | http://www.quartz-scheduler.org/ |
| Ehcache | 進(jìn)程內(nèi)緩存框架 | http://www.ehcache.org/ |
| ActiveMQ | 消息隊(duì)列 | http://activemq.apache.org/ |
| JStorm | 實(shí)時(shí)流式計(jì)算框架 | http://jstorm.io/ |
| FastDFS | 分布式文件系統(tǒng) | https://github.com/happyfish100/fastdfs |
| Log4J | 日志組件 | http://logging.apache.org/log4j/1.2/ |
| Swagger2 | 接口測(cè)試框架 | http://swagger.io/ |
| sequence | 分布式高效ID生產(chǎn) | http://git.oschina.net/yu120/sequence |
| AliOSS & Qiniu & QcloudCOS | 云存儲(chǔ) | https://www.aliyun.com/product/oss/ http://www.qiniu.com/ https://www.qcloud.com/product/cos |
| Protobuf & json | 數(shù)據(jù)序列化 | https://github.com/google/protobuf |
| Jenkins | 持續(xù)集成工具 | https://jenkins.io/index.html |
| Maven | 項(xiàng)目構(gòu)建管理 | http://maven.apache.org/ |
| Netty-socketio | 實(shí)時(shí)推送 | https://github.com/mrniko/netty-socketio |
前端技術(shù):
| jQuery | 函式庫(kù) | http://jquery.com/ |
| Bootstrap | 前端框架 | http://getbootstrap.com/ |
| Bootstrap-table | Bootstrap數(shù)據(jù)表格 | http://bootstrap-table.wenzhixin.net.cn/ |
| Font-awesome | 字體圖標(biāo) | http://fontawesome.io/ |
| material-design-iconic-font | 字體圖標(biāo) | https://github.com/zavoloklom/material-design-iconic-font |
| Waves | 點(diǎn)擊效果插件 | https://github.com/fians/Waves |
| zTree | 樹(shù)插件 | http://www.treejs.cn/v3/ |
| Select2 | 選擇框插件 | https://github.com/select2/select2 |
| jquery-confirm | 彈出窗口插件 | https://github.com/craftpip/jquery-confirm |
| jQuery EasyUI | 基于jQuery的UI插件集合體 | http://www.jeasyui.com |
| React | 界面構(gòu)建框架 | https://github.com/facebook/react |
| Editor.md | Markdown編輯器 | https://github.com/pandao/editor.md |
| zhengAdmin | 后臺(tái)管理系統(tǒng)模板 | https://github.com/shuzheng/zhengAdmin |
| autoMail | 郵箱地址自動(dòng)補(bǔ)全插件 | https://github.com/shuzheng/autoMail |
| zheng.jprogress.js | 加載進(jìn)度條插件 | https://github.com/shuzheng/zheng.jprogress.js |
| zheng.jtotop.js | 返回頂部插件 | https://github.com/shuzheng/zheng.jtotop.js |
| socket.io.js | SocketIO插件 | https://socket.io/ |
架構(gòu)圖
架構(gòu)圖模塊依賴(lài)
模塊依賴(lài)模塊介紹
zheng-common
Spring+SpringMVC+Mybatis框架集成公共模塊,包括公共配置、MybatisGenerator擴(kuò)展插件、通用BaseService、工具類(lèi)等。
zheng-admin
基于bootstrap實(shí)現(xiàn)的響應(yīng)式Material Design風(fēng)格的通用后臺(tái)管理系統(tǒng),zheng項(xiàng)目所有后臺(tái)系統(tǒng)都是使用該模塊界面作為前端展示。
zheng-ui
各個(gè)子系統(tǒng)前臺(tái)thymeleaf模板,前端資源模塊,使用nginx代理,實(shí)現(xiàn)動(dòng)靜分離。
zheng-upms
本系統(tǒng)是基于RBAC授權(quán)和基于用戶(hù)授權(quán)的細(xì)粒度權(quán)限控制通用平臺(tái),并提供單點(diǎn)登錄、會(huì)話管理和日志管理。接入的系統(tǒng)可自由定義組織、角色、權(quán)限、資源等。用戶(hù)權(quán)限=所擁有角色權(quán)限合集+用戶(hù)加權(quán)限-用戶(hù)減權(quán)限,優(yōu)先級(jí):用戶(hù)減權(quán)限>用戶(hù)加權(quán)限>角色權(quán)限
zheng-oss
文件存儲(chǔ)系統(tǒng),提供四種方案:
阿里云 OSS
騰訊云 COS
七牛云
本地分布式存儲(chǔ)
zheng-api
服務(wù)網(wǎng)關(guān),對(duì)外暴露統(tǒng)一規(guī)范的接口和包裝響應(yīng)結(jié)果,包括各個(gè)子系統(tǒng)的交互接口、對(duì)外開(kāi)放接口、開(kāi)發(fā)加密接口、接口文檔等服務(wù),可在該模塊支持驗(yàn)簽、鑒權(quán)、路由、限流、監(jiān)控、容錯(cuò)、日志等功能。示例圖:
API網(wǎng)關(guān)zheng-cms
內(nèi)容管理系統(tǒng):支持多標(biāo)簽、多類(lèi)目、強(qiáng)大評(píng)論的內(nèi)容管理,有基本單頁(yè)展示,菜單管理,系統(tǒng)設(shè)置等功能。
zheng-pay
一站式支付解決方案,統(tǒng)一下單接口,支持支付寶、微信、網(wǎng)銀等多種支付方式。不涉及業(yè)務(wù)的純粹的支付平臺(tái)。
統(tǒng)一下單(統(tǒng)一下單接口、統(tǒng)一掃碼)、訂單管理、數(shù)據(jù)分析、財(cái)務(wù)報(bào)表、商戶(hù)管理、渠道管理、對(duì)賬系統(tǒng)、系統(tǒng)監(jiān)控。
zheng-ucenter
通用用戶(hù)管理系統(tǒng), 實(shí)現(xiàn)最常用的用戶(hù)注冊(cè)、登錄、資料管理、個(gè)人中心、第三方登錄等基本需求,支持?jǐn)U展二次開(kāi)發(fā)。
zheng-wechat-mp
微信公眾號(hào)管理平臺(tái),除實(shí)現(xiàn)官網(wǎng)后臺(tái)自動(dòng)回復(fù)、菜單管理、素材管理、用戶(hù)管理、消息群發(fā)等基礎(chǔ)功能外,還有二維碼推廣、營(yíng)銷(xiāo)活動(dòng)、微網(wǎng)站、會(huì)員卡、優(yōu)惠券等。
zheng-wechat-app
微信小程序后臺(tái)
zheng-message
基于Netty實(shí)現(xiàn)SocketIO的實(shí)時(shí)推送系統(tǒng)。支持命名空間、二進(jìn)制數(shù)據(jù)、SSL、ACK等功能。
搜索Java知音公眾號(hào),回復(fù)“后端面試”,送你一份Java面試題寶典.pdf
環(huán)境搭建(QQ群內(nèi)有“zheng環(huán)境搭建和系統(tǒng)部署文檔.doc”)
開(kāi)發(fā)工具:
MySql: 數(shù)據(jù)庫(kù)
jetty: 開(kāi)發(fā)服務(wù)器
Tomcat: 應(yīng)用服務(wù)器
SVN|Git: 版本管理
Nginx: 反向代理服務(wù)器
Varnish: HTTP加速器
IntelliJ IDEA: 開(kāi)發(fā)IDE
PowerDesigner: 建模工具
Navicat for MySQL: 數(shù)據(jù)庫(kù)客戶(hù)端
開(kāi)發(fā)環(huán)境:
Jdk7+
Mysql5.5+
Redis
Zookeeper
ActiveMQ
Dubbo-admin
Dubbo-monitor
工具安裝
環(huán)境搭建和系統(tǒng)部署文檔(作者:小兵,QQ群共享提供下載)
資源下載
JDK7 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html[1]
Maven http://maven.apache.org/download.cgi[2]
Redis https://redis.io/download[3]
ActiveMQ http://activemq.apache.org/download-archives.html[4]
ZooKeeper http://www.apache.org/dyn/closer.cgi/zookeeper/[5]
Dubbo http://dubbo.io/Download-zh.htm[6]
Elastic Stack https://www.elastic.co/downloads[7]
Nginx http://nginx.org/en/download.html[8]
Jenkins http://updates.jenkins-ci.org/download/war/[9]
dubbo-admin-2.5.3 http://download.csdn.net/detail/shuzheng5201314/9733652[10]
dubbo-admin-2.5.4-SNAPSHOT-jdk8 http://download.csdn.net/detail/shuzheng5201314/9733657[11]
開(kāi)發(fā)指南:
1、本機(jī)安裝Jdk7、Mysql、Redis、Zookeeper、ActiveMQ并啟動(dòng)相關(guān)服務(wù),使用默認(rèn)配置默認(rèn)端口即可
2、克隆源代碼到本地并打開(kāi),推薦使用IntelliJ IDEA,本地編譯并安裝到本地maven倉(cāng)庫(kù)
修改本地Host
127.0.0.1 ui.zhangshuzheng.cn
127.0.0.1 upms.zhangshuzheng.cn
127.0.0.1 cms.zhangshuzheng.cn
127.0.0.1 pay.zhangshuzheng.cn
127.0.0.1 ucenter.zhangshuzheng.cn
127.0.0.1 wechat.zhangshuzheng.cn
127.0.0.1 api.zhangshuzheng.cn
127.0.0.1 oss.zhangshuzheng.cn
127.0.0.1 config.zhangshuzheng.cn
127.0.0.1 zkserver
127.0.0.1 rdserver
127.0.0.1 dbserver
127.0.0.1 mqserver
編譯流程
maven編譯安裝zheng/pom.xml文件即可
啟動(dòng)順序(后臺(tái))
準(zhǔn)備工作
新建zheng數(shù)據(jù)庫(kù),導(dǎo)入project-datamodel文件夾下的zheng.sql
修改各dao模塊和rpc-service模塊的redis.properties、jdbc.properties、generator.properties數(shù)據(jù)庫(kù)連接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password密碼值使用了AES加密,請(qǐng)使用com.zheng.common.util.AESUtil工具類(lèi)修改這些值
啟動(dòng)Zookeeper、Redis、ActiveMQ、Nginx(配置文件參考project-tools/nginx下的*.conf文件)
zheng-upms
首先啟動(dòng) zheng-upms-rpc-service(直接運(yùn)行src目錄下的ZhengUpmsRpcServiceApplication#main方法啟動(dòng)) => zheng-upms-server(jetty),然后按需啟動(dòng)對(duì)應(yīng)子系統(tǒng)xxx的zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty)
訪問(wèn) http://upms.zhangshuzheng.cn:1111/[12],子系統(tǒng)菜單已經(jīng)配置到zheng-upms權(quán)限中,不用直接訪問(wèn)子系統(tǒng),默認(rèn)帳號(hào)密碼:admin/123456
登錄成功后,可在右上角切換已注冊(cè)系統(tǒng)訪問(wèn)
zheng-cms
zheng-cms-admin:啟動(dòng)ActiveMQ-啟動(dòng) => 啟動(dòng)zheng-rpc-service => 啟動(dòng)zheng-cms-admin
zheng-cms-web:啟動(dòng)nginx代理zheng-ui靜態(tài)資源,配置文件可參考 nginx.conf
zheng-oss
首先啟動(dòng)zheng-oss-web服務(wù)
開(kāi)發(fā)階段,如果zheng-oss-web沒(méi)有公網(wǎng)域名,推薦使用ngrok內(nèi)網(wǎng)穿透工具,為開(kāi)發(fā)環(huán)境提供公網(wǎng)域名,實(shí)現(xiàn)上傳回調(diào)
啟動(dòng)nginx代理zheng-ui靜態(tài)資源
開(kāi)發(fā)演示(QQ群內(nèi)有“zheng十分鐘視頻:從檢出到啟動(dòng).wmv”)
創(chuàng)建數(shù)據(jù)表(建議使用PowerDesigner)
直接運(yùn)行對(duì)應(yīng)項(xiàng)目dao模塊中的generator.main(),可自動(dòng)生成單表的CRUD功能和對(duì)應(yīng)的model、example、mapper、service代碼
selectByExampleWithBLOBsForStartPage()
selectByExampleForStartPage()
selectByExampleWithBLOBsForOffsetPage()
selectByExampleForOffsetPage()
生成的model和example均已實(shí)現(xiàn)Serializable接口,支持分布式
已包含抽象類(lèi)BaseServiceImpl,只需要繼承抽象類(lèi)并傳入泛型參數(shù),即可默認(rèn)實(shí)現(xiàn)mapper接口所有方法,特殊需求直接擴(kuò)展即可
BaseServiceImpl默認(rèn)已實(shí)現(xiàn)四種根據(jù)條件分頁(yè)接口
BaseServiceImpl方法根據(jù)讀寫(xiě)操作自動(dòng)切換主從數(shù)據(jù)源,繼承的擴(kuò)展接口,可手動(dòng)通過(guò)DynamicDataSource.setDataSource(DataSourceEnum.XXX.getName())指定數(shù)據(jù)源
啟動(dòng)流程:優(yōu)先rcp-service服務(wù)提供者,再啟動(dòng)其他webapp
擴(kuò)展流程:可擴(kuò)展和拆分rpc-api和rpc-service模塊,可按微服務(wù)拆分或場(chǎng)景拆分
部署方式(QQ群內(nèi)有“zheng十分鐘視頻:從打包到linux服務(wù)器部署.wmv”)
war包項(xiàng)目:使用tomcat等web容器啟動(dòng)
rpc-service服務(wù)提供者jar包:將打包后的zheng-xxx-rpc-service-assembly.tar.gz文件解壓,使用bin目錄的管理腳本運(yùn)行即可,支持優(yōu)雅停機(jī)。
框架規(guī)范約定
約定優(yōu)于配置(convention over configuration),此框架約定了很多編程規(guī)范,下面一一列舉:
service類(lèi),需要在叫名service的包下,并以Service結(jié)尾,如CmsArticleServiceImpl
controller類(lèi),需要在以controller結(jié)尾的包下,類(lèi)名以Controller結(jié)尾,如CmsArticleController.java,并繼承BaseController
spring task類(lèi),需要在叫名task的包下,并以Task結(jié)尾,如TestTask.java
mapper.xml,需要在名叫mapper的包下,并以Mapper.xml結(jié)尾,如CmsArticleMapper.xml
mapper接口,需要在名叫mapper的包下,并以Mapper結(jié)尾,如CmsArticleMapper.java
model實(shí)體類(lèi),需要在名叫model的包下,命名規(guī)則為數(shù)據(jù)表轉(zhuǎn)駝峰規(guī)則,如CmsArticle.java
spring配置文件,命名規(guī)則為applicationContext-*.xml
類(lèi)名:首字母大寫(xiě)駝峰規(guī)則;方法名:首字母小寫(xiě)駝峰規(guī)則;常量:全大寫(xiě);變量:首字母小寫(xiě)駝峰規(guī)則,盡量非縮寫(xiě)
springmvc配置加到對(duì)應(yīng)模塊的springMVC-servlet.xml文件里
配置文件放到src/main/resources目錄下
靜態(tài)資源文件放到src/main/webapp/resources目錄下
jsp文件,需要在/WEB-INF/jsp目錄下
RequestMapping和返回物理試圖路徑的url盡量寫(xiě)全路徑,如:@RequestMapping("/manage")、return "/manage/index"
RequestMapping指定method
模塊命名為項(xiàng)目-子項(xiàng)目-業(yè)務(wù),如zheng-cms-admin
數(shù)據(jù)表命名為:子系統(tǒng)_表,如cms_article
更多規(guī)范,參考[[阿里巴巴Java開(kāi)發(fā)手冊(cè)] http://git.oschina.net/shuzheng/zheng/attach_files
演示地址
演示地址:http://upms.zhangshuzheng.cn/[13]
預(yù)覽圖
????
數(shù)據(jù)模型
數(shù)據(jù)庫(kù)模型拓?fù)鋱D
拓?fù)鋱D項(xiàng)目地址
https://gitee.com/shuzheng/zheng/
推薦文章面試官問(wèn):前后端分離項(xiàng)目,有什么優(yōu)缺點(diǎn)?我說(shuō):沒(méi)
2020 年騰訊新增 20 億行代碼,鵝廠第一編程語(yǔ)言還是它
通俗講解分布式鎖,看完不懂算我輸
寫(xiě)博客能月入10K?
一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問(wèn)答/社交網(wǎng)絡(luò)/博客)
這或許是最美的Vue+Element開(kāi)源后臺(tái)管理UI
推薦一款高顏值的 Spring Boot 快速開(kāi)發(fā)框架
一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問(wèn)答/社交網(wǎng)絡(luò)/博客)
13K點(diǎn)贊都基于 Vue+Spring 前后端分離管理系統(tǒng)ELAdmin,大愛(ài)
想接私活時(shí)薪再翻一倍,建議根據(jù)這幾個(gè)開(kāi)源的SpringBoot項(xiàng)目
總結(jié)
以上是生活随笔為你收集整理的基于Spring+SpringMVC+Mybatis的分布式敏捷开发系统架构(附源码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 47K Star 的SpringBoot
- 下一篇: 我用Java写了个女朋友,甚至还能跟我聊