README.md 18.7 KB
Newer Older
shuzheng5201314's avatar
shuzheng5201314 已提交
1
# zheng
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
2
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)
shuzheng5201314's avatar
shuzheng5201314 已提交
3
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/shuzheng/zheng/pulls)
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
4
[![GitHub forks](https://img.shields.io/github/forks/shuzheng/zheng.svg?style=social&label=Fork)](https://github.com/shuzheng/zheng)
shuzheng5201314's avatar
shuzheng5201314 已提交
5

shuzheng5201314's avatar
shuzheng5201314 已提交
6
交流QQ群:133107819🈵、284280411♨️(群内含各种工具和文档下载)
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
7

shuzheng5201314's avatar
shuzheng5201314 已提交
8 9
## 前言

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
10
  `zheng`项目创建于2016年10月4日,正在慢慢成长中,目的不仅仅是一个开发架构,而是努力打造一套从 **前端UI** - **基础框架** - **分布式架构** - **开源项目** - **持续集成** - **自动化部署** - **系统监测** - **无缝升级** 的全方位J2EE企业级开发解决方案。
shuzheng5201314's avatar
shuzheng5201314 已提交
11

shuzheng5201314's avatar
shuzheng5201314 已提交
12
## 项目介绍
shuzheng5201314's avatar
shuzheng5201314 已提交
13

shuzheng5201314's avatar
shuzheng5201314 已提交
14
基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构:内容管理系统(门户、博客、论坛、问答等)、统一支付中心(微信、支付宝、在线网银等)、用户权限管理系统(RBAC细粒度用户权限、统一后台、单点登录、会话管理)、微信管理系统、第三方登录系统、会员系统、存储系统等,努力为中小型企业打造全方位J2EE企业级开发解决方案。
shuzheng5201314's avatar
shuzheng5201314 已提交
15 16 17

### 组织结构

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
18
``` lua
shuzheng5201314's avatar
shuzheng5201314 已提交
19
zheng
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
20
├── zheng-common -- SSM框架公共模块
shuzheng5201314's avatar
shuzheng5201314 已提交
21
├── zheng-ui -- 后台管理系统UI模板(基于bootstrap实现的响应式Material Design风格的通用后台管理系统模板)
shuzheng5201314's avatar
shuzheng5201314 已提交
22
├── zheng-upms -- 用户权限管理系统(网关)
23
|    ├── zheng-upms-common -- upms系统公共模块
shuzheng5201314's avatar
shuzheng5201314 已提交
24
|    ├── zheng-upms-dao -- MyBatisGenerator代码生成模块,无需开发
shuzheng5201314's avatar
shuzheng5201314 已提交
25
|    ├── zheng-upms-client -- 集成upms依赖包,提供单点认证、授权、统一会话管理
shuzheng5201314's avatar
shuzheng5201314 已提交
26
|    ├── zheng-upms-rpc-api -- rpc接口包
27
|    ├── zheng-upms-rpc-service -- rpc服务提供者
shuzheng5201314's avatar
shuzheng5201314 已提交
28
|    └── zheng-upms-server -- 用户权限系统及SSO服务端[端口:1111]
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
29
├── zheng-cms -- 内容管理系统
shuzheng5201314's avatar
shuzheng5201314 已提交
30
|    ├── zheng-cms-common -- cms系统公共模块
shuzheng5201314's avatar
shuzheng5201314 已提交
31
|    ├── zheng-cms-dao -- MyBatisGenerator代码生成模块,无需开发
shuzheng5201314's avatar
shuzheng5201314 已提交
32
|    ├── zheng-cms-rpc-api -- rpc接口包
33
|    ├── zheng-cms-rpc-service -- rpc服务提供者
shuzheng5201314's avatar
shuzheng5201314 已提交
34 35 36 37
|    ├── zheng-cms-search -- 搜索服务[端口:2221]
|    ├── zheng-cms-admin -- 后台管理[端口:2222]
|    ├── zheng-cms-job -- 消息队列、任务调度等[端口:2223]
|    └── zheng-cms-web -- 网站前台[端口:2224]
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
38
├── zheng-pay -- 支付系统
shuzheng5201314's avatar
shuzheng5201314 已提交
39
|    ├── zheng-pay-dao -- MyBatisGenerator代码生成模块,无需开发
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
40 41
|    ├── zheng-pay-service -- 业务逻辑
|    ├── zheng-pay-sdk -- 开发工具包
shuzheng5201314's avatar
shuzheng5201314 已提交
42 43
|    ├── zheng-pay-admin -- 后台管理[端口:3331]
|    └── zheng-pay-web -- 演示示例[端口:3332]
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
44
├── zheng-ucenter -- 用户系统(包括第三方登录)
shuzheng5201314's avatar
shuzheng5201314 已提交
45
|    ├── zheng-ucenter-dao -- MyBatisGenerator代码生成模块,无需开发
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
46
|    ├── zheng-ucenter-service -- 业务逻辑
shuzheng5201314's avatar
shuzheng5201314 已提交
47
|    └── zheng-ucenter-home -- 网站前台[端口:4441]
shuzheng5201314's avatar
shuzheng5201314 已提交
48 49 50 51 52 53
├── zheng-wechat -- 微信系统
|    ├── zheng-wechat-mp -- 微信公众号管理系统
|    |    ├── zheng-wechat-mp-dao -- MyBatisGenerator代码生成模块,无需开发
|    |    ├── zheng-wechat-mp-service -- 业务逻辑
|    |    └── zheng-wechat-mp-admin -- 后台管理[端口:5551]
|    └── zheng-ucenter-app -- 微信小程序后台
shuzheng5201314's avatar
shuzheng5201314 已提交
54
├── zheng-api -- API接口总线系统
shuzheng5201314's avatar
shuzheng5201314 已提交
55 56 57 58
|    ├── zheng-api-common -- api系统公共模块
|    ├── zheng-api-rpc-api -- rpc接口包
|    ├── zheng-api-rpc-service -- rpc服务提供者
|    └── zheng-api-server -- api系统服务端[端口:6666]
shuzheng5201314's avatar
shuzheng5201314 已提交
59 60 61 62
├── zheng-shop -- 电子商务系统
├── zheng-im -- 即时通讯系统
├── zheng-oa -- 办公自动化系统
├── zheng-eoms -- 运维系统
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
63
└── zheng-oss -- 对象存储系统
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
64
     ├── zheng-oss-sdk -- 开发工具包
shuzheng5201314's avatar
shuzheng5201314 已提交
65
     └── zheng-oss-web -- 管理界面[端口:7771]
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
66
```
shuzheng5201314's avatar
shuzheng5201314 已提交
67

shuzheng5201314's avatar
shuzheng5201314 已提交
68
### 技术选型
shuzheng5201314's avatar
shuzheng5201314 已提交
69

shuzheng5201314's avatar
shuzheng5201314 已提交
70
#### 后端技术:
shuzheng5201314's avatar
shuzheng5201314 已提交
71 72
- Spring Framework
- SpringMVC: MVC框架
73
- Spring secutity|Apache Shiro: 安全框架
shuzheng5201314's avatar
shuzheng5201314 已提交
74 75 76 77
- Spring session: 分布式Session管理
- MyBatis: ORM框架
- MyBatis Generator: 代码生成
- Druid: 数据库连接池
78
- FluentValidator: 校验框架 [https://github.com/neoremind/fluent-validator](https://github.com/neoremind/fluent-validator "FluentValidator")
shuzheng5201314's avatar
shuzheng5201314 已提交
79
- Jsp|Velocity|Thymeleaf: 模板引擎
80
- ZooKeeper: 分布式协调服务
shuzheng5201314's avatar
shuzheng5201314 已提交
81 82 83
- Dubbo: 分布式服务框架
- TBSchedule|elastic-job: 分布式调度框架
- Redis: 分布式缓存数据库
84
- Solr|Elasticsearch: 分布式全文搜索引擎
shuzheng5201314's avatar
shuzheng5201314 已提交
85
- Quartz: 作业调度框架
86
- Ehcache: 进程内缓存框架
shuzheng5201314's avatar
shuzheng5201314 已提交
87
- ActiveMQ: 消息队列
88
- JStorm: 实时流式计算框架
shuzheng5201314's avatar
shuzheng5201314 已提交
89 90
- FastDFS: 分布式文件系统
- Log4J: 日志管理
91
- Swagger2: 接口测试框架
shuzheng5201314's avatar
shuzheng5201314 已提交
92
- sequence: 分布式高效ID生产 [http://git.oschina.net/yu120/sequence](http://git.oschina.net/yu120/sequence "sequence")
93
- AliOSS|Qiniu|QcloudCOS: 云存储
shuzheng5201314's avatar
shuzheng5201314 已提交
94 95 96
- Protobuf|json: 数据传输 
- Jenkins: 持续集成工具
- Maven|Gradle: 项目构建管理
shuzheng5201314's avatar
shuzheng5201314 已提交
97

shuzheng5201314's avatar
shuzheng5201314 已提交
98
#### 前端技术:
shuzheng5201314's avatar
shuzheng5201314 已提交
99 100
- jQuery
- Bootstrap
shuzheng5201314's avatar
shuzheng5201314 已提交
101 102 103 104
- Bootstrap-table
- Font-awesome
- Waves
- zTree
shuzheng5201314's avatar
shuzheng5201314 已提交
105
- Select2
shuzheng5201314's avatar
shuzheng5201314 已提交
106
- jquery-confirm
shuzheng5201314's avatar
shuzheng5201314 已提交
107 108 109 110 111 112
- jQuery EasyUI
- AngularJs
- zhengAdmin [基于bootstrap实现的响应式Material Design风格的通用后台管理系统](https://github.com/shuzheng/zhengAdmin "zhengAdmin")
- autoMail [邮箱地址自动补全插件](https://github.com/shuzheng/autoMail "autoMail")
- zheng.jprogress.js [一款模仿youtube加载进度条插件](https://github.com/shuzheng/zheng.jprogress.js "zheng.jprogress.js")
- zheng.jtotop.js [返回顶部插件(可以任意速度滑动到指定任意位置)](https://github.com/shuzheng/zheng.jtotop.js "zheng.jtotop.js")
shuzheng5201314's avatar
shuzheng5201314 已提交
113

shuzheng5201314's avatar
shuzheng5201314 已提交
114
#### 模块依赖
shuzheng5201314's avatar
shuzheng5201314 已提交
115

shuzheng5201314's avatar
shuzheng5201314 已提交
116 117 118 119
![模块依赖](project-bootstrap/project.png)

#### 模块介绍

shuzheng5201314's avatar
shuzheng5201314 已提交
120
> zheng-common
shuzheng5201314's avatar
shuzheng5201314 已提交
121

shuzheng5201314's avatar
shuzheng5201314 已提交
122
Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。
shuzheng5201314's avatar
shuzheng5201314 已提交
123

124
> zheng-ui
shuzheng5201314's avatar
shuzheng5201314 已提交
125

shuzheng5201314's avatar
shuzheng5201314 已提交
126
基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`项目所有系统都是使用该模块界面作为前端展示。
shuzheng5201314's avatar
shuzheng5201314 已提交
127

shuzheng5201314's avatar
shuzheng5201314 已提交
128
> zheng-upms
shuzheng5201314's avatar
shuzheng5201314 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141

本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。

**系统功能概述:**

- 系统组织管理:系统和组织增加、删除、修改、查询功能。
- 用户角色管理:用户和角色增加、删除、修改、查询功能。
- 资源权限管理:资源和权限增加、删除、修改、查询功能。
- 权限分配管理:提供给角色和用户的权限增加、删除、修改、查询功能。
- 单点登录(SSO):提供统一用户单点登录认证、用户鉴权功能。
- 用户会话管理:提供分布式用户会话管理
- 操作日志管理:提供记录用户登录、操作等日志。

shuzheng5201314's avatar
shuzheng5201314 已提交
142
> zheng-oss
shuzheng5201314's avatar
shuzheng5201314 已提交
143

shuzheng5201314's avatar
shuzheng5201314 已提交
144
文件存储系统,提供四种方案:
shuzheng5201314's avatar
shuzheng5201314 已提交
145

shuzheng5201314's avatar
shuzheng5201314 已提交
146 147 148 149
- **阿里云** OSS
- **腾讯云** COS
- **七牛云**
- 本地分布式存储
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
150

shuzheng5201314's avatar
shuzheng5201314 已提交
151
> zheng-api
shuzheng5201314's avatar
shuzheng5201314 已提交
152

shuzheng5201314's avatar
shuzheng5201314 已提交
153
接口总线系统,对外暴露统一规范的接口,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,示例图:
shuzheng5201314's avatar
shuzheng5201314 已提交
154 155 156

![API网关](project-bootstrap/zheng-api.png)

shuzheng5201314's avatar
shuzheng5201314 已提交
157

shuzheng5201314's avatar
shuzheng5201314 已提交
158
> zheng-cms
shuzheng5201314's avatar
shuzheng5201314 已提交
159

shuzheng5201314's avatar
shuzheng5201314 已提交
160
内容管理系统:支持多标签、多类目、强大评论的内容管理,有基本单页展示,菜单管理,系统设置等功能。
shuzheng5201314's avatar
shuzheng5201314 已提交
161

shuzheng5201314's avatar
shuzheng5201314 已提交
162
> zheng-pay
shuzheng5201314's avatar
shuzheng5201314 已提交
163

shuzheng5201314's avatar
shuzheng5201314 已提交
164
- 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。
shuzheng5201314's avatar
shuzheng5201314 已提交
165

shuzheng5201314's avatar
shuzheng5201314 已提交
166
- 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统、系统监控。
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
167

shuzheng5201314's avatar
shuzheng5201314 已提交
168
> zheng-ucenter
shuzheng5201314's avatar
shuzheng5201314 已提交
169

shuzheng5201314's avatar
shuzheng5201314 已提交
170
通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。
shuzheng5201314's avatar
shuzheng5201314 已提交
171

shuzheng5201314's avatar
shuzheng5201314 已提交
172
> zheng-wechat-mp
shuzheng5201314's avatar
shuzheng5201314 已提交
173

shuzheng5201314's avatar
shuzheng5201314 已提交
174
微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。
shuzheng5201314's avatar
shuzheng5201314 已提交
175

shuzheng5201314's avatar
shuzheng5201314 已提交
176 177
> zheng-ucenter-app 

shuzheng5201314's avatar
shuzheng5201314 已提交
178
微信小程序后台
shuzheng5201314's avatar
shuzheng5201314 已提交
179 180 181

> zheng-shop

shuzheng5201314's avatar
shuzheng5201314 已提交
182
电子商务系统
shuzheng5201314's avatar
shuzheng5201314 已提交
183 184 185

> zheng-im

shuzheng5201314's avatar
shuzheng5201314 已提交
186
即时通讯系统
shuzheng5201314's avatar
shuzheng5201314 已提交
187 188 189

> zheng-oa

shuzheng5201314's avatar
shuzheng5201314 已提交
190
办公自动化系统
shuzheng5201314's avatar
shuzheng5201314 已提交
191 192 193

> zheng-eoms

shuzheng5201314's avatar
shuzheng5201314 已提交
194
运维系统
shuzheng5201314's avatar
shuzheng5201314 已提交
195

shuzheng5201314's avatar
shuzheng5201314 已提交
196 197 198
## 环境搭建

#### 开发工具:
shuzheng5201314's avatar
shuzheng5201314 已提交
199 200 201 202 203 204 205 206 207
- MySql: 数据库
- jetty: 开发服务器
- Tomcat: 应用服务器
- SVN|Git: 版本管理
- Nginx: 反向代理服务器
- Varnish: HTTP加速器
- IntelliJ IDEA: 开发IDE
- PowerDesigner: 建模工具
- Navicat for MySQL: 数据库客户端
shuzheng5201314's avatar
shuzheng5201314 已提交
208

shuzheng5201314's avatar
shuzheng5201314 已提交
209
#### 开发环境:
shuzheng5201314's avatar
shuzheng5201314 已提交
210

shuzheng5201314's avatar
shuzheng5201314 已提交
211 212 213 214 215 216
- Jdk7
- Mysql5.5
- Redis
- Zookeeper
- ActiveMQ
- Dubbo-admin
shuzheng5201314's avatar
shuzheng5201314 已提交
217

shuzheng5201314's avatar
shuzheng5201314 已提交
218
### 工具安装
219

220
[环境搭建和系统部署文档(作者:小兵)](http://git.oschina.net/shuzheng/zheng/attach_files "环境搭建和系统部署文档(作者:小兵)")
shuzheng5201314's avatar
shuzheng5201314 已提交
221

shuzheng5201314's avatar
shuzheng5201314 已提交
222
### 资源下载
shuzheng5201314's avatar
shuzheng5201314 已提交
223

shuzheng5201314's avatar
shuzheng5201314 已提交
224
- JDK7 [http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html](http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html "JDK7")
shuzheng5201314's avatar
shuzheng5201314 已提交
225 226 227 228 229 230 231 232 233
- Maven [http://maven.apache.org/download.cgi](http://maven.apache.org/download.cgi "Maven")
- Redis [https://redis.io/download](https://redis.io/download "Redis")
- ActiveMQ [http://activemq.apache.org/download-archives.html](http://activemq.apache.org/download-archives.html "ActiveMQ")
- ZooKeeper [http://www.apache.org/dyn/closer.cgi/zookeeper/](http://www.apache.org/dyn/closer.cgi/zookeeper/ "ZooKeeper")
- Dubbo [http://dubbo.io/Download-zh.htm](http://dubbo.io/Download-zh.htm "Dubbo")
- Elastic Stack [https://www.elastic.co/downloads](https://www.elastic.co/downloads "Elastic Stack")
- Jenkins [http://updates.jenkins-ci.org/download/war/](http://updates.jenkins-ci.org/download/war/ "Jenkins")
- dubbo-admin-2.5.3 [http://download.csdn.net/detail/shuzheng5201314/9733652](http://download.csdn.net/detail/shuzheng5201314/9733652 "dubbo-admin-2.5.3")
- dubbo-admin-2.5.4-SNAPSHOT-jdk8 [http://download.csdn.net/detail/shuzheng5201314/9733657](http://download.csdn.net/detail/shuzheng5201314/9733657 "dubbo-admin-2.5.4-SNAPSHOT-jdk8")
shuzheng5201314's avatar
shuzheng5201314 已提交
234
- 更多资源请加QQ群
shuzheng5201314's avatar
shuzheng5201314 已提交
235

shuzheng5201314's avatar
shuzheng5201314 已提交
236 237
## 开发指南:

shuzheng5201314's avatar
shuzheng5201314 已提交
238 239
- 1、本机安装Jdk7、Mysql、Redis、Zookeeper、ActiveMQ并启动相关服务,使用默认配置默认端口即可
- 2、克隆源代码到本地并打开,**推荐使用IntelliJ IDEA**,本地编译并安装到本地maven仓库
shuzheng5201314's avatar
shuzheng5201314 已提交
240

shuzheng5201314's avatar
shuzheng5201314 已提交
241
### 修改本地Host
shuzheng5201314's avatar
shuzheng5201314 已提交
242 243 244 245 246 247 248 249

- 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
shuzheng5201314's avatar
shuzheng5201314 已提交
250

shuzheng5201314's avatar
shuzheng5201314 已提交
251 252
### 编译流程

shuzheng5201314's avatar
shuzheng5201314 已提交
253
zheng-ui、zheng-common => zheng-upms => 其他
shuzheng5201314's avatar
shuzheng5201314 已提交
254

shuzheng5201314's avatar
shuzheng5201314 已提交
255 256
### 启动顺序

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
257
- 新建zheng数据库,导入zheng.sql
shuzheng5201314's avatar
shuzheng5201314 已提交
258

shuzheng5201314's avatar
shuzheng5201314 已提交
259
- 修改各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工具类修改这些值
260

shuzheng5201314's avatar
shuzheng5201314 已提交
261
- 启动 zheng-upms-rpc-service(运行ZhengUpmsRpcServiceApplication#main方法启动) => zheng-upms-server(jetty) => zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty)
shuzheng5201314's avatar
shuzheng5201314 已提交
262

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
263
- 访问 [统一后台地址 http://upms.zhangshuzheng.cn:1111/ ](http://upms.zhangshuzheng.cn:1111/ "统一后台地址"),默认帐号密码:admin/123456
shuzheng5201314's avatar
shuzheng5201314 已提交
264 265

- 登录成功后,可在右上角切换已注册系统访问
shuzheng5201314's avatar
shuzheng5201314 已提交
266

shuzheng5201314's avatar
shuzheng5201314 已提交
267 268 269 270 271 272 273 274 275
### 开发演示

- 创建数据表(建议使用PowerDesigner)

- 直接运行对应项目dao模块中的generator.main(),可自动生成单表的CRUD功能和对应的model、example、mapper、service代码

    - 生成的model和example均已实现Serializable接口,支持分布式
    - 生成的mapper.xml的selectByExample方法自动包含分页参数offset和limit
    - 已包含抽象类BaseServiceImpl,只需要继承抽象类并传入泛型参数,即可默认实现mapper接口所有方法,特殊需求直接扩展即可
shuzheng5201314's avatar
shuzheng5201314 已提交
276
    - BaseServiceImpl方法根据读写操作自动切换主从数据源,继承的扩展接口,可手动通过`DynamicDataSource.setDataSource(DataSourceEnum.XXX.getName())`指定数据源
shuzheng5201314's avatar
shuzheng5201314 已提交
277 278 279 280 281

- 启动流程:优先rcp-service服务提供者,再启动其他webapp

- 扩展流程:可扩展和拆分rpc-api和rpc-service模块,可按微服务拆分或场景拆分

shuzheng5201314's avatar
shuzheng5201314 已提交
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317
### 框架规范约定

`约定优于配置(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`

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
318
- 更多规范,参考[[阿里巴巴Java开发手册](http://git.oschina.net/shuzheng/zheng/attach_files "Alibaba Java Development Manual.pdf")]
319

shuzheng5201314's avatar
shuzheng5201314 已提交
320

shuzheng5201314's avatar
shuzheng5201314 已提交
321 322
## 演示地址

shuzheng5201314's avatar
shuzheng5201314 已提交
323
演示地址: [http://www.zhangshuzheng.cn/zhengAdmin](http://www.zhangshuzheng.cn/zhengAdmin "演示地址")
shuzheng5201314's avatar
shuzheng5201314 已提交
324 325

### 预览图
shuzheng5201314's avatar
shuzheng5201314 已提交
326
![login](project-bootstrap/zheng-upms-login.png)
shuzheng5201314's avatar
shuzheng5201314 已提交
327 328
![index](project-bootstrap/zheng-upms-index.png)
![crud](project-bootstrap/zheng-upms-crud.png)
shuzheng5201314's avatar
shuzheng5201314 已提交
329
![swagger](project-bootstrap/api.png)
shuzheng5201314's avatar
shuzheng5201314 已提交
330

shuzheng5201314's avatar
shuzheng5201314 已提交
331 332 333 334 335 336
### 数据模型
![数据库模型](https://github.com/shuzheng/zheng/raw/master/project-datamodel/zheng.png)

### 拓扑图
![拓扑图](https://github.com/shuzheng/zheng/raw/master/project-bootstrap/distributedSystem.png)

shuzheng5201314's avatar
shuzheng5201314 已提交
337 338 339
### 开发进度
![开发进度](project-bootstrap/progress.png)

shuzheng5201314's avatar
shuzheng5201314 已提交
340 341 342 343 344 345
## 附件

### 优秀文章和博客

- [创业互联网公司如何搭建自己的技术框架](http://shuzheng5201314.iteye.com/blog/2330151 "创业互联网公司如何搭建自己的技术框架")

shuzheng5201314's avatar
shuzheng5201314 已提交
346 347
- [微服务实战](https://segmentfault.com/a/1190000004634172 "微服务实战")

shuzheng5201314's avatar
shuzheng5201314 已提交
348 349 350 351 352 353
- [单点登录原理与简单实现](http://shuzheng5201314.iteye.com/blog/2343910 "单点登录原理与简单实现")

- [ITeye论坛关于权限控制的讨论](http://www.iteye.com/magazines/82 "ITeye论坛关于权限控制的讨论")

- [RBAC新解:基于资源的权限管理(Resource-Based Access Control)](http://globeeip.iteye.com/blog/1236167 "RBAC新解:基于资源的权限管理(Resource-Based Access Control)")

shuzheng5201314's avatar
shuzheng5201314 已提交
354 355
- [网站架构经验随笔](http://jinnianshilongnian.iteye.com/blog/2289904 "网站架构经验随笔")

shuzheng5201314's avatar
shuzheng5201314 已提交
356 357
- [支付系统架构](http://shuzheng5201314.iteye.com/blog/2355431 "支付系统架构")

shuzheng5201314's avatar
shuzheng5201314 已提交
358 359
- [Spring整合JMS](http://elim.iteye.com/blog/1893038 "Spring整合JMS")

shuzheng5201314's avatar
shuzheng5201314 已提交
360 361
- [跟我学Shiro目录贴](http://jinnianshilongnian.iteye.com/blog/2018398 "跟我学Shiro目录贴")

shuzheng5201314's avatar
shuzheng5201314 已提交
362 363 364 365 366 367
- [跟我学SpringMVC目录汇总贴](http://jinnianshilongnian.iteye.com/blog/1752171 "跟我学SpringMVC目录汇总贴")

- [跟我学spring3 目录贴](http://jinnianshilongnian.iteye.com/blog/1482071 "跟我学spring3 目录贴")

- [跟我学OpenResty(Nginx+Lua)开发目录贴](http://jinnianshilongnian.iteye.com/blog/2190344 "跟我学OpenResty(Nginx+Lua)开发目录贴")

shuzheng5201314's avatar
shuzheng5201314 已提交
368 369 370 371
- [Redis中文网](http://www.redis.net.cn/ "Redis中文网")

- [读懂Redis并配置主从集群及高可用部署](http://mp.weixin.qq.com/s?__biz=MzIxNTYzOTQ0Ng==&mid=2247483668&idx=1&sn=cd31574877d38cf7ff9c047b86c9bf23&chksm=979475eda0e3fcfb6b5006bcd19c5a838eca9e369252847dbdf97820bf418201dd75c1dadda3&mpshare=1&scene=23&srcid=0117KUiiITwi2ETRan16xRVg#rd "读懂Redis并配置主从集群及高可用部署")

shuzheng5201314's avatar
shuzheng5201314 已提交
372 373
- [ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台](http://www.open-open.com/lib/view/open1451801542042.html "ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台")

shuzheng5201314's avatar
shuzheng5201314 已提交
374 375 376 377 378 379 380 381
- [Nginx基本功能极速入门](http://xxgblog.com/2015/05/17/nginx-start/ "Nginx基本功能极速入门")

- [mybatis-genarator 自定义插件](https://my.oschina.net/alexgaoyh/blog/702791 "mybatis-genarator 自定义插件")

- [Elasticsearch权威指南(中文版)](https://es.xiaoleilu.com/510_Deployment/20_hardware.html "Elasticsearch权威指南(中文版)")

- [springMVC对简单对象、Set、List、Map的数据绑定和常见问题.](http://blog.csdn.net/z_dendy/article/details/12648641 "springMVC对简单对象、Set、List、Map的数据绑定和常见问题.")

shuzheng5201314's avatar
shuzheng5201314 已提交
382 383
- [如何细粒度地控制你的MyBatis二级缓存](http://blog.csdn.net/luanlouis/article/details/41800511 "如何细粒度地控制你的MyBatis二级缓存")

shuzheng5201314's avatar
shuzheng5201314 已提交
384 385 386
- [做个男人,做个成熟的男人,做个有城府的男人](http://shuzheng5201314.iteye.com/blog/1387820 "做个男人,做个成熟的男人,做个有城府的男人")


shuzheng5201314's avatar
shuzheng5201314 已提交
387
### 在线小工具
shuzheng5201314's avatar
shuzheng5201314 已提交
388 389 390 391

- [在线Cron表达式生成器](http://cron.qqe2.com/ "在线Cron表达式生成器")

- [在线工具 - 程序员的工具箱](http://tool.lu/ "在线工具 - 程序员的工具箱")
shuzheng5201314's avatar
update  
shuzheng5201314 已提交
392

shuzheng5201314's avatar
shuzheng5201314 已提交
393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410
### 在线文档

- [JDK7英文文档](http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4 "JDK7英文文档")

- [Spring4.x文档](http://spring.oschina.mopaas.com/ "Spring4.x文档")

- [Mybatis3官网](http://www.mybatis.org/mybatis-3/zh/index.html "Mybatis3官网")

- [Dubbo官网](http://dubbo.io/ "Dubbo官网")

- [Nginx中文文档](http://tool.oschina.net/apidocs/apidoc?api=nginx-zh "Nginx中文文档")

- [Freemarker在线手册](http://freemarker.foofun.cn/ "Freemarker在线中文手册")

- [Velocity在线手册](http://velocity.apache.org/engine/devel/developer-guide.html "Velocity在线手册")

- [Bootstrap在线手册](http://www.bootcss.com/ "Bootstrap在线手册")

shuzheng5201314's avatar
shuzheng5201314 已提交
411 412
- [Git官网中文文档](https://git-scm.com/book/zh/v2 "Git官网中文文档")

shuzheng5201314's avatar
update  
shuzheng5201314 已提交
413 414
## 许可证

shuzheng5201314's avatar
shuzheng5201314 已提交
415
[MIT](http://opensource.org/licenses/MIT "MIT")