日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web开发框架——Zheng

發布時間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web开发框架——Zheng 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  zheng項目不僅僅是一個開發架構,而是努力打造一套從?前端模板?-?基礎框架?-?分布式架構?-?開源項目?-?持續集成?-?自動化部署-?系統監測?-?無縫升級?的全方位J2EE企業級開發解決方案。

項目介紹

  基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構,提供整套公共微服務服務模塊:內容管理、支付中心、用戶管理(包括第三方)、微信平臺、存儲系統、配置中心、日志分析、任務和通知等,支持服務治理、監控和追蹤,努力為中小型企業打造全方位J2EE企業級開發解決方案。

組織結構


zheng ├── zheng-common -- SSM框架公共模塊 ├── zheng-admin -- 后臺管理模板 ├── zheng-ui -- 前臺thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用戶權限管理系統 | ├── zheng-upms-common -- upms系統公共模塊 | ├── zheng-upms-dao -- 代碼生成模塊,無需開發 | ├── zheng-upms-client -- 集成upms依賴包,提供單點認證、授權、統一會話管理 | ├── zheng-upms-rpc-api -- rpc接口包 | ├── zheng-upms-rpc-service -- rpc服務提供者 | └── zheng-upms-server -- 用戶權限系統及SSO服務端[端口:1111] ├── zheng-cms -- 內容管理系統 | ├── zheng-cms-common -- cms系統公共模塊 | ├── zheng-cms-dao -- 代碼生成模塊,無需開發 | ├── zheng-cms-rpc-api -- rpc接口包 | ├── zheng-cms-rpc-service -- rpc服務提供者 | ├── zheng-cms-search -- 搜索服務[端口:2221] | ├── zheng-cms-admin -- 后臺管理[端口:2222] | ├── zheng-cms-job -- 消息隊列、任務調度等[端口:2223] | └── zheng-cms-web -- 網站前臺[端口:2224] ├── zheng-pay -- 支付系統 | ├── zheng-pay-common -- pay系統公共模塊 | ├── zheng-pay-dao -- 代碼生成模塊,無需開發 | ├── zheng-pay-rpc-api -- rpc接口包 | ├── zheng-pay-rpc-service -- rpc服務提供者 | ├── zheng-pay-sdk -- 開發工具包 | ├── zheng-pay-admin -- 后臺管理[端口:3331] | └── zheng-pay-web -- 演示示例[端口:3332] ├── zheng-ucenter -- 用戶系統(包括第三方登錄) | ├── zheng-ucenter-common -- ucenter系統公共模塊 | ├── zheng-ucenter-dao -- 代碼生成模塊,無需開發 | ├── zheng-ucenter-rpc-api -- rpc接口包 | ├── zheng-ucenter-rpc-service -- rpc服務提供者 | └── zheng-ucenter-web -- 網站前臺[端口:4441] ├── zheng-wechat -- 微信系統 | ├── zheng-wechat-mp -- 微信公眾號管理系統 | | ├── zheng-wechat-mp-dao -- 代碼生成模塊,無需開發 | | ├── zheng-wechat-mp-service -- 業務邏輯 | | └── zheng-wechat-mp-admin -- 后臺管理[端口:5551] | └── zheng-ucenter-app -- 微信小程序后臺 ├── zheng-api -- API接口總線系統 | ├── zheng-api-common -- api系統公共模塊 | ├── zheng-api-rpc-api -- rpc接口包 | ├── zheng-api-rpc-service -- rpc服務提供者 | └── zheng-api-server -- api系統服務端[端口:6666] ├── zheng-oss -- 對象存儲系統 | ├── zheng-oss-sdk -- 開發工具包 | ├── zheng-oss-web -- 前臺接口[端口:7771] | └── zheng-oss-admin -- 后臺管理[端口:7772] ├── zheng-shop -- 電子商務系統 └── zheng-demo -- 示例模塊(包含一些示例代碼等)├── zheng-demo-rpc-api -- rpc接口包├── zheng-demo-rpc-service -- rpc服務提供者└── zheng-demo-web -- 演示示例[端口:8888]

技術選型

后端技術:

技術名稱官網
Spring Framework容器http://projects.spring.io/spring-framework/
SpringMVCMVC框架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/
MyBatisORM框架http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator代碼生成http://www.mybatis.org/generator/index.html
PageHelperMyBatis物理分頁插件http://git.oschina.net/free/Mybatis_PageHelper
Druid數據庫連接池https://github.com/alibaba/druid
FluentValidator校驗框架https://github.com/neoremind/fluent-validator
Thymeleaf模板引擎http://www.thymeleaf.org/
Velocity模板引擎http://velocity.apache.org/
ZooKeeper分布式協調服務http://zookeeper.apache.org/
Dubbo分布式服務框架http://dubbo.io/
TBSchedule & elastic-job分布式調度框架https://github.com/dangdangdotcom/elastic-job
Redis分布式緩存數據庫https://redis.io/
Solr & Elasticsearch分布式全文搜索引擎http://lucene.apache.org/solr/?https://www.elastic.co/
Quartz作業調度框架http://www.quartz-scheduler.org/
Ehcache進程內緩存框架http://www.ehcache.org/
ActiveMQ消息隊列http://activemq.apache.org/
JStorm實時流式計算框架http://jstorm.io/
FastDFS分布式文件系統https://github.com/happyfish100/fastdfs
Log4J日志組件http://logging.apache.org/log4j/1.2/
Swagger2接口測試框架http://swagger.io/
sequence分布式高效ID生產http://git.oschina.net/yu120/sequence
AliOSS & Qiniu & QcloudCOS云存儲https://www.aliyun.com/product/oss/?http://www.qiniu.com/?https://www.qcloud.com/product/cos
Protobuf & json數據序列化https://github.com/google/protobuf
Jenkins持續集成工具https://jenkins.io/index.html
Maven項目構建管理http://maven.apache.org/

前端技術:

技術名稱官網
jQuery函式庫http://jquery.com/
Bootstrap前端框架http://getbootstrap.com/
Bootstrap-tableBootstrap數據表格http://bootstrap-table.wenzhixin.net.cn/
Font-awesome字體圖標http://fontawesome.io/
material-design-iconic-font字體圖標https://github.com/zavoloklom/material-design-iconic-font
Waves點擊效果插件https://github.com/fians/Waves
zTree樹插件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界面構建框架https://github.com/facebook/react
Editor.mdMarkdown編輯器https://github.com/pandao/editor.md
zhengAdmin后臺管理系統模板https://github.com/shuzheng/zhengAdmin
autoMail郵箱地址自動補全插件https://github.com/shuzheng/autoMail
zheng.jprogress.js加載進度條插件https://github.com/shuzheng/zheng.jprogress.js
zheng.jtotop.js返回頂部插件https://github.com/shuzheng/zheng.jtotop.js


架構圖

模塊依賴

模塊介紹

zheng-common

Spring+SpringMVC+Mybatis框架集成公共模塊,包括公共配置、MybatisGenerator擴展插件、通用BaseService、工具類等。

zheng-admin

基于bootstrap實現的響應式Material Design風格的通用后臺管理系統,zheng項目所有后臺系統都是使用該模塊界面作為前端展示。

zheng-ui

各個子系統前臺thymeleaf模板,前端資源模塊,使用nginx代理,實現動靜分離。

zheng-upms

本系統是基于RBAC授權和基于用戶授權的細粒度權限控制通用平臺,并提供單點登錄、會話管理和日志管理。接入的系統可自由定義組織、角色、權限、資源等。用戶權限=所擁有角色權限合集+用戶加權限-用戶減權限,優先級:用戶減權限>用戶加權限>角色權限

zheng-oss

文件存儲系統,提供四種方案:

  • 阿里云?OSS
  • 騰訊云?COS
  • 七牛云
  • 本地分布式存儲

zheng-api

服務網關,對外暴露統一規范的接口和包裝響應結果,包括各個子系統的交互接口、對外開放接口、開發加密接口、接口文檔等服務,可在該模塊支持驗簽、鑒權、路由、限流、監控、容錯、日志等功能。示例圖:

zheng-cms

內容管理系統:支持多標簽、多類目、強大評論的內容管理,有基本單頁展示,菜單管理,系統設置等功能。

zheng-pay

  • 一站式支付解決方案,統一下單接口,支持支付寶、微信、網銀等多種支付方式。不涉及業務的純粹的支付平臺。

  • 統一下單(統一下單接口、統一掃碼)、訂單管理、數據分析、財務報表、商戶管理、渠道管理、對賬系統、系統監控。

zheng-ucenter

通用用戶管理系統, 實現最常用的用戶注冊、登錄、資料管理、個人中心、第三方登錄等基本需求,支持擴展二次開發。

zheng-wechat-mp

微信公眾號管理平臺,除實現官網后臺自動回復、菜單管理、素材管理、用戶管理、消息群發等基礎功能外,還有二維碼推廣、營銷活動、微網站、會員卡、優惠券等。

zheng-wechat-app

微信小程序后臺

環境搭建(QQ群內有“zheng環境搭建和系統部署文檔.doc”)

開發工具:

  • MySql: 數據庫
  • jetty: 開發服務器
  • Tomcat: 應用服務器
  • SVN|Git: 版本管理
  • Nginx: 反向代理服務器
  • Varnish: HTTP加速器
  • IntelliJ IDEA: 開發IDE
  • PowerDesigner: 建模工具
  • Navicat for MySQL: 數據庫客戶端

開發環境:

  • Jdk7+
  • Mysql5.5+
  • Redis
  • Zookeeper
  • ActiveMQ
  • Dubbo-admin
  • Dubbo-monitor

工具安裝

環境搭建和系統部署文檔(作者:小兵,QQ群共享提供下載)

資源下載

  • JDK7?http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
  • Maven?http://maven.apache.org/download.cgi
  • Redis?https://redis.io/download
  • ActiveMQ?http://activemq.apache.org/download-archives.html
  • ZooKeeper?http://www.apache.org/dyn/closer.cgi/zookeeper/
  • Dubbo?http://dubbo.io/Download-zh.htm
  • Elastic Stack?https://www.elastic.co/downloads
  • Nginx?http://nginx.org/en/download.html
  • Jenkins?http://updates.jenkins-ci.org/download/war/
  • dubbo-admin-2.5.3?http://download.csdn.net/detail/shuzheng5201314/9733652
  • dubbo-admin-2.5.4-SNAPSHOT-jdk8?http://download.csdn.net/detail/shuzheng5201314/9733657
  • 更多資源請加QQ群

開發指南:

  • 1、本機安裝Jdk7、Mysql、Redis、Zookeeper、ActiveMQ并啟動相關服務,使用默認配置默認端口即可
  • 2、克隆源代碼到本地并打開,推薦使用IntelliJ IDEA,本地編譯并安裝到本地maven倉庫

修改本地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文件即可

啟動順序(后臺)

準備工作

  • 新建zheng數據庫,導入project-datamodel文件夾下的zheng.sql

  • 修改各dao模塊和rpc-service模塊的redis.properties、jdbc.properties、generator.properties數據庫連接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password密碼值使用了AES加密,請使用com.zheng.common.util.AESUtil工具類修改這些值

  • 啟動Zookeeper、Redis、ActiveMQ、Nginx(配置文件參考project-tools/nginx下的*.conf文件)

zheng-upms

  • 首先啟動 zheng-upms-rpc-service(直接運行src目錄下的ZhengUpmsRpcServiceApplication#main方法啟動) => zheng-upms-server(jetty),然后按需啟動對應子系統xxx的zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty)

  • 訪問?http://upms.zhangshuzheng.cn:1111/,子系統菜單已經配置到zheng-upms權限中,不用直接訪問子系統,默認帳號密碼:admin/123456

  • 登錄成功后,可在右上角切換已注冊系統訪問

zheng-cms

  • zheng-cms-admin:啟動ActiveMQ-啟動 => 啟動zheng-rpc-service => 啟動zheng-cms-admin

  • zheng-cms-web:啟動nginx代理zheng-ui靜態資源,配置文件可參考?nginx.conf

zheng-oss

  • 首先啟動zheng-oss-web服務

  • 開發階段,如果zheng-oss-web沒有公網域名,推薦使用ngrok內網穿透工具,為開發環境提供公網域名,實現上傳回調

  • 啟動nginx代理zheng-ui靜態資源

開發演示(QQ群內有“zheng十分鐘視頻:從檢出到啟動.wmv”)

  • 創建數據表(建議使用PowerDesigner)

  • 直接運行對應項目dao模塊中的generator.main(),可自動生成單表的CRUD功能和對應的model、example、mapper、service代碼

    • 生成的model和example均已實現Serializable接口,支持分布式

    • 已包含抽象類BaseServiceImpl,只需要繼承抽象類并傳入泛型參數,即可默認實現mapper接口所有方法,特殊需求直接擴展即可

    • BaseServiceImpl默認已實現四種根據條件分頁接口

      • selectByExampleWithBLOBsForStartPage()

      • selectByExampleForStartPage()

      • selectByExampleWithBLOBsForOffsetPage()

      • selectByExampleForOffsetPage()

    • BaseServiceImpl方法根據讀寫操作自動切換主從數據源,繼承的擴展接口,可手動通過DynamicDataSource.setDataSource(DataSourceEnum.XXX.getName())指定數據源

  • 啟動流程:優先rcp-service服務提供者,再啟動其他webapp

  • 擴展流程:可擴展和拆分rpc-api和rpc-service模塊,可按微服務拆分或場景拆分

部署方式(QQ群內有“zheng十分鐘視頻:從打包到linux服務器部署.wmv”)

  • war包項目:使用tomcat等web容器啟動

  • rpc-service服務提供者jar包:將打包后的zheng-xxx-rpc-service-assembly.tar.gz文件解壓,使用bin目錄的管理腳本運行即可,支持優雅停機。

框架規范約定

約定優于配置(convention over configuration),此框架約定了很多編程規范,下面一一列舉:

- service類,需要在叫名`service`的包下,并以`Service`結尾,如`CmsArticleServiceImpl` - controller類,需要在以`controller`結尾的包下,類名以Controller結尾,如`CmsArticleController.java`,并繼承`BaseController` - spring task類,需要在叫名`task`的包下,并以`Task`結尾,如`TestTask.java` - mapper.xml,需要在名叫`mapper`的包下,并以`Mapper.xml`結尾,如`CmsArticleMapper.xml` - mapper接口,需要在名叫`mapper`的包下,并以`Mapper`結尾,如`CmsArticleMapper.java` - model實體類,需要在名叫`model`的包下,命名規則為數據表轉駝峰規則,如`CmsArticle.java` - spring配置文件,命名規則為`applicationContext-*.xml` - 類名:首字母大寫駝峰規則;方法名:首字母小寫駝峰規則;常量:全大寫;變量:首字母小寫駝峰規則,盡量非縮寫 - springmvc配置加到對應模塊的`springMVC-servlet.xml`文件里 - 配置文件放到`src/main/resources`目錄下 - 靜態資源文件放到`src/main/webapp/resources`目錄下 - jsp文件,需要在`/WEB-INF/jsp`目錄下 - `RequestMapping`和返回物理試圖路徑的url盡量寫全路徑,如:`@RequestMapping("/manage")``return "/manage/index"` - `RequestMapping`指定method - 模塊命名為`項目`-`子項目`-`業務`,如`zheng-cms-admin` - 數據表命名為:`子系統`_`表`,如`cms_article` - 更多規范,參考[[阿里巴巴Java開發手冊] http://git.oschina.net/shuzheng/zheng/attach_files

演示地址

演示地址:?http://upms.zhangshuzheng.cn/

預覽圖

數據模型

拓撲圖

開發進度

參與開發

首先謝謝大家支持,如果你希望參與開發,歡迎通過Github上fork本項目,并Pull Request您的commit。

常見問題

  • Eclipse下,dubbo找不到dubbo.xsd報錯,不影響使用,如果要解決,可參考?http://blog.csdn.net/gjldwz/article/details/50555922

  • 報zheng-xxx.jar包找不到,請按照文檔編譯順序,將源代碼編譯并安裝到本地maven倉庫

  • zheng-cms-admin啟動卡住:因為沒有啟動activemq

  • zheng-upms-server訪問報session不存在:因為沒有啟動redis服務

  • 界面沒有樣式:因為zheng-admin沒有編譯安裝到本地倉庫

  • linux下執行rpc-service腳本報“bin/bash^M 壞的解釋器”,使用sed -i 's/\r$//' filename刪除腳本中\r字符

附件

zheng相關博客

  • zheng-1:環境搭建及項目部署

  • zheng項目新建一個module學習學習

  • zheng項目系統簡單的分析記錄

  • zheng項目-從rpc-service開始!

  • 進擊zheng項目zheng-umps-server

  • zheng環境搭建

  • 讓zheng支持activiti工作流

  • 讓zheng更完美地支持ajax提交的json數據

優秀文章和博客

  • 創業互聯網公司如何搭建自己的技術框架

  • 微服務實戰

  • 單點登錄原理與簡單實現

  • ITeye論壇關于權限控制的討論

  • RBAC新解:基于資源的權限管理(Resource-Based Access Control)

  • 網站架構經驗隨筆

  • 支付系統架構

  • Spring整合JMS

  • 跟我學Shiro目錄貼

  • 跟我學SpringMVC目錄匯總貼

  • 跟我學spring3 目錄貼

  • 跟我學OpenResty(Nginx+Lua)開發目錄貼

  • Redis中文網

  • 讀懂Redis并配置主從集群及高可用部署

  • Redis哨兵-實現Redis高可用

  • ELK(ElasticSearch, Logstash, Kibana)搭建實時日志分析平臺

  • Nginx基本功能極速入門

  • mybatis-genarator 自定義插件

  • Elasticsearch權威指南(中文版)

  • springMVC對簡單對象、Set、List、Map的數據綁定和常見問題.

  • 如何細粒度地控制你的MyBatis二級緩存

  • Git 在團隊中的最佳實踐--如何正確使用Git Flow

  • 做個男人,做個成熟的男人,做個有城府的男人


項目介紹

  基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構,提供整套公共微服務服務模塊:內容管理、支付中心、用戶管理(包括第三方)、微信平臺、存儲系統、配置中心、日志分析、任務和通知等,支持服務治理、監控和追蹤,努力為中小型企業打造全方位J2EE企業級開發解決方案。

組織結構

技術選型

后端技術:

架構圖

模塊依賴

模塊介紹

zheng-common

Spring+SpringMVC+Mybatis框架集成公共模塊,包括公共配置、MybatisGenerator擴展插件、通用BaseService、工具類等。

zheng-admin

基于bootstrap實現的響應式Material Design風格的通用后臺管理系統,zheng項目所有后臺系統都是使用該模塊界面作為前端展示。

zheng-ui

各個子系統前臺thymeleaf模板,前端資源模塊,使用nginx代理,實現動靜分離。

zheng-upms

本系統是基于RBAC授權和基于用戶授權的細粒度權限控制通用平臺,并提供單點登錄、會話管理和日志管理。接入的系統可自由定義組織、角色、權限、資源等。用戶權限=所擁有角色權限合集+用戶加權限-用戶減權限,優先級:用戶減權限>用戶加權限>角色權限

zheng-oss

文件存儲系統,提供四種方案:

  • 阿里云?OSS
  • 騰訊云?COS
  • 七牛云
  • 本地分布式存儲

zheng-api

服務網關,對外暴露統一規范的接口和包裝響應結果,包括各個子系統的交互接口、對外開放接口、開發加密接口、接口文檔等服務,可在該模塊支持驗簽、鑒權、路由、限流、監控、容錯、日志等功能。示例圖:

zheng-cms

內容管理系統:支持多標簽、多類目、強大評論的內容管理,有基本單頁展示,菜單管理,系統設置等功能。

zheng-pay

  • 一站式支付解決方案,統一下單接口,支持支付寶、微信、網銀等多種支付方式。不涉及業務的純粹的支付平臺。

  • 統一下單(統一下單接口、統一掃碼)、訂單管理、數據分析、財務報表、商戶管理、渠道管理、對賬系統、系統監控。

zheng-ucenter

通用用戶管理系統, 實現最常用的用戶注冊、登錄、資料管理、個人中心、第三方登錄等基本需求,支持擴展二次開發。

zheng-wechat-mp

微信公眾號管理平臺,除實現官網后臺自動回復、菜單管理、素材管理、用戶管理、消息群發等基礎功能外,還有二維碼推廣、營銷活動、微網站、會員卡、優惠券等。

zheng-wechat-app

微信小程序后臺

環境搭建(QQ群內有“zheng環境搭建和系統部署文檔.doc”)

開發工具:

  • MySql: 數據庫
  • jetty: 開發服務器
  • Tomcat: 應用服務器
  • SVN|Git: 版本管理
  • Nginx: 反向代理服務器
  • Varnish: HTTP加速器
  • IntelliJ IDEA: 開發IDE
  • PowerDesigner: 建模工具
  • Navicat for MySQL: 數據庫客戶端

開發環境:

  • Jdk7+
  • Mysql5.5+
  • Redis
  • Zookeeper
  • ActiveMQ
  • Dubbo-admin
  • Dubbo-monitor

工具安裝

環境搭建和系統部署文檔(作者:小兵,QQ群共享提供下載)

資源下載

  • JDK7?http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
  • Maven?http://maven.apache.org/download.cgi
  • Redis?https://redis.io/download
  • ActiveMQ?http://activemq.apache.org/download-archives.html
  • ZooKeeper?http://www.apache.org/dyn/closer.cgi/zookeeper/
  • Dubbo?http://dubbo.io/Download-zh.htm
  • Elastic Stack?https://www.elastic.co/downloads
  • Nginx?http://nginx.org/en/download.html
  • Jenkins?http://updates.jenkins-ci.org/download/war/
  • dubbo-admin-2.5.3?http://download.csdn.net/detail/shuzheng5201314/9733652
  • dubbo-admin-2.5.4-SNAPSHOT-jdk8?http://download.csdn.net/detail/shuzheng5201314/9733657
  • 更多資源請加QQ群

開發指南:

  • 1、本機安裝Jdk7、Mysql、Redis、Zookeeper、ActiveMQ并啟動相關服務,使用默認配置默認端口即可
  • 2、克隆源代碼到本地并打開,推薦使用IntelliJ IDEA,本地編譯并安裝到本地maven倉庫

修改本地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文件即可

啟動順序(后臺)

準備工作

  • 新建zheng數據庫,導入project-datamodel文件夾下的zheng.sql

  • 修改各dao模塊和rpc-service模塊的redis.properties、jdbc.properties、generator.properties數據庫連接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password密碼值使用了AES加密,請使用com.zheng.common.util.AESUtil工具類修改這些值

  • 啟動Zookeeper、Redis、ActiveMQ、Nginx(配置文件參考project-tools/nginx下的*.conf文件)

zheng-upms

  • 首先啟動 zheng-upms-rpc-service(直接運行src目錄下的ZhengUpmsRpcServiceApplication#main方法啟動) => zheng-upms-server(jetty),然后按需啟動對應子系統xxx的zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty)

  • 訪問?http://upms.zhangshuzheng.cn:1111/,子系統菜單已經配置到zheng-upms權限中,不用直接訪問子系統,默認帳號密碼:admin/123456

  • 登錄成功后,可在右上角切換已注冊系統訪問

zheng-cms

  • zheng-cms-admin:啟動ActiveMQ-啟動 => 啟動zheng-rpc-service => 啟動zheng-cms-admin

  • zheng-cms-web:啟動nginx代理zheng-ui靜態資源,配置文件可參考?nginx.conf

zheng-oss

  • 首先啟動zheng-oss-web服務

  • 開發階段,如果zheng-oss-web沒有公網域名,推薦使用ngrok內網穿透工具,為開發環境提供公網域名,實現上傳回調

  • 啟動nginx代理zheng-ui靜態資源

開發演示(QQ群內有“zheng十分鐘視頻:從檢出到啟動.wmv”)

  • 創建數據表(建議使用PowerDesigner)

  • 直接運行對應項目dao模塊中的generator.main(),可自動生成單表的CRUD功能和對應的model、example、mapper、service代碼

    • 生成的model和example均已實現Serializable接口,支持分布式

    • 已包含抽象類BaseServiceImpl,只需要繼承抽象類并傳入泛型參數,即可默認實現mapper接口所有方法,特殊需求直接擴展即可

    • BaseServiceImpl默認已實現四種根據條件分頁接口

      • selectByExampleWithBLOBsForStartPage()

      • selectByExampleForStartPage()

      • selectByExampleWithBLOBsForOffsetPage()

      • selectByExampleForOffsetPage()

    • BaseServiceImpl方法根據讀寫操作自動切換主從數據源,繼承的擴展接口,可手動通過DynamicDataSource.setDataSource(DataSourceEnum.XXX.getName())指定數據源

  • 啟動流程:優先rcp-service服務提供者,再啟動其他webapp

  • 擴展流程:可擴展和拆分rpc-api和rpc-service模塊,可按微服務拆分或場景拆分

部署方式(QQ群內有“zheng十分鐘視頻:從打包到linux服務器部署.wmv”)

  • war包項目:使用tomcat等web容器啟動

  • rpc-service服務提供者jar包:將打包后的zheng-xxx-rpc-service-assembly.tar.gz文件解壓,使用bin目錄的管理腳本運行即可,支持優雅停機。

框架規范約定

約定優于配置(convention over configuration),此框架約定了很多編程規范,下面一一列舉:

- service類,需要在叫名`service`的包下,并以`Service`結尾,如`CmsArticleServiceImpl` - controller類,需要在以`controller`結尾的包下,類名以Controller結尾,如`CmsArticleController.java`,并繼承`BaseController` - spring task類,需要在叫名`task`的包下,并以`Task`結尾,如`TestTask.java` - mapper.xml,需要在名叫`mapper`的包下,并以`Mapper.xml`結尾,如`CmsArticleMapper.xml` - mapper接口,需要在名叫`mapper`的包下,并以`Mapper`結尾,如`CmsArticleMapper.java` - model實體類,需要在名叫`model`的包下,命名規則為數據表轉駝峰規則,如`CmsArticle.java` - spring配置文件,命名規則為`applicationContext-*.xml` - 類名:首字母大寫駝峰規則;方法名:首字母小寫駝峰規則;常量:全大寫;變量:首字母小寫駝峰規則,盡量非縮寫 - springmvc配置加到對應模塊的`springMVC-servlet.xml`文件里 - 配置文件放到`src/main/resources`目錄下 - 靜態資源文件放到`src/main/webapp/resources`目錄下 - jsp文件,需要在`/WEB-INF/jsp`目錄下 - `RequestMapping`和返回物理試圖路徑的url盡量寫全路徑,如:`@RequestMapping("/manage")``return "/manage/index"` - `RequestMapping`指定method - 模塊命名為`項目`-`子項目`-`業務`,如`zheng-cms-admin` - 數據表命名為:`子系統`_`表`,如`cms_article` - 更多規范,參考[[阿里巴巴Java開發手冊] http://git.oschina.net/shuzheng/zheng/attach_files

演示地址

演示地址:?http://upms.zhangshuzheng.cn/

預覽圖

數據模型

拓撲圖

開發進度

參與開發

首先謝謝大家支持,如果你希望參與開發,歡迎通過Github上fork本項目,并Pull Request您的commit。

常見問題

  • Eclipse下,dubbo找不到dubbo.xsd報錯,不影響使用,如果要解決,可參考?http://blog.csdn.net/gjldwz/article/details/50555922

  • 報zheng-xxx.jar包找不到,請按照文檔編譯順序,將源代碼編譯并安裝到本地maven倉庫

  • zheng-cms-admin啟動卡住:因為沒有啟動activemq

  • zheng-upms-server訪問報session不存在:因為沒有啟動redis服務

  • 界面沒有樣式:因為zheng-admin沒有編譯安裝到本地倉庫

  • linux下執行rpc-service腳本報“bin/bash^M 壞的解釋器”,使用sed -i 's/\r$//' filename刪除腳本中\r字符

附件

zheng相關博客

  • zheng-1:環境搭建及項目部署

  • zheng項目新建一個module學習學習

  • zheng項目系統簡單的分析記錄

  • zheng項目-從rpc-service開始!

  • 進擊zheng項目zheng-umps-server

  • zheng環境搭建

  • 讓zheng支持activiti工作流

  • 讓zheng更完美地支持ajax提交的json數據

優秀文章和博客

  • 創業互聯網公司如何搭建自己的技術框架

  • 微服務實戰

  • 單點登錄原理與簡單實現

  • ITeye論壇關于權限控制的討論

  • RBAC新解:基于資源的權限管理(Resource-Based Access Control)

  • 網站架構經驗隨筆

  • 支付系統架構

  • Spring整合JMS

  • 跟我學Shiro目錄貼

  • 跟我學SpringMVC目錄匯總貼

  • 跟我學spring3 目錄貼

  • 跟我學OpenResty(Nginx+Lua)開發目錄貼

  • Redis中文網

  • 讀懂Redis并配置主從集群及高可用部署

  • Redis哨兵-實現Redis高可用

  • ELK(ElasticSearch, Logstash, Kibana)搭建實時日志分析平臺

  • Nginx基本功能極速入門

  • mybatis-genarator 自定義插件

  • Elasticsearch權威指南(中文版)

  • springMVC對簡單對象、Set、List、Map的數據綁定和常見問題.

  • 如何細粒度地控制你的MyBatis二級緩存

  • Git 在團隊中的最佳實踐--如何正確使用Git Flow

  • 做個男人,做個成熟的男人,做個有城府的男人

總結

以上是生活随笔為你收集整理的Web开发框架——Zheng的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。