1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shuzheng-zheng

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Zheng

Статус сборки Лицензия Добро пожаловать с Pull Request'ами Количество звезд GitHub Количество форков GitHub

Общение в QQ группах: 133107819、284280411、305155242🈵、528049386、157869467🈵、570766789🈵、601147566🈵、309985359🈵、336380857🈵、522723488、556447629、654558397🈵、392564561🈵、494594000🈵、494070275🈵、168267539🈵、652798487🈵、650979251🈵、622461564🈵、219381522🈵、487874426🈵、398342630🈵、205986087🈵、574153262🈵、606890936🈵、565434047🈵、680947971🈵、341884034🈵、562977817🈵、478962414🈵、679219230🈵、676766033🈵、621874750🈵、522903600🈵、524932879🈵、376261902🈵、481096887🈵、232104667🈵、637879277🈵、697575367🈵、702995203🈵、708665910🈵、697141239🈵、574057714🈵、631332162🈵、591739143🈵、731016871🈵、598738752🈵、748759166🈵、159816595(группа включает различные инструменты, документы, видеоуроки)

Введение

Проект Zheng представляет собой не просто архитектуру разработки, но и стремится создать комплексное решение для J2EE корпоративной разработки, которое охватывает все этапы от фронтенд-шаблонов до распределенной архитектуры, открытых проектов, непрерывной интеграции, автоматического развертывания, системного мониторинга и безболезненного обновления.## Описание проекта

Проект основан на архитектуре Spring + Spring MVC + MyBatis распределённой системы быстрой разработки. Он предоставляет целый набор модулей общих микросервисов: управление контентом, центр платежей, управление пользователями (включая третьих лиц), платформа WeChat, система хранения, центр конфигураций, анализ логов, задачи и уведомления и т.д., поддерживающий управление сервисами, мониторинг и трассировку. Цель состоит в том, чтобы создать комплексное решение для J2EE корпоративной разработки для малого и среднего бизнеса.### Организационная структура```lua 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 -- общие модули для системы платежей

 |    ├── 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 -- система WeChat
 |    ├── zheng-wechat-mp -- система управления аккаунтом WeChat
 |    |    ├── zheng-wechat-mp-dao -- модуль генерации кода, который не требует разработки
 |    |    ├── zheng-wechat-mps-service -- бизнес-логика
 |    |    └── zheng-wechat-mp-admin -- административная панель [порт:5551]
 |    └── zheng-ucenter-app -- административная панель для WeChat Mini Programs
 ├── zheng-api -- система общего интерфейса API
 ```Пожалуйста, обратите внимание, что в некоторых местах были использованы наиболее подходящие термины для описания технологий и процессов, чтобы обеспечить понятность и соответствие стандартам IT-документации.

├── 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-message -- система реального времени уведомлений ├── zheng-message-sdk -- пакет средств разработчика ├── zheng-message-server -- серверная часть [порты:8881, SocketIO порт:8882] └── zheng-message-client -- клиентская часть

├── zheng-shop -- система электронной коммерции └── zheng-demo -- демонстрационный модуль (включает примеры кода и т.д.) ├── zheng-demo-rpc-api -- пакет RPC-интерфейсов ├── zheng-demo-rpc-service -- предоставитель сервиса RPC └── zheng-demo-web -- демонстрационный пример [порт:9999]


### Технологический выбор

#### Бэкенд технологии:Технология | Название | Официальный сайт
 ---|---|---
 Spring Framework | Контейнер | [http://projects.spring.io/spring-framework/](http://projects.spring.io/spring-framework/)
 SpringMVC | MVC фреймворк | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc)
 Apache Shiro | Безопасность | [http://shiro.apache.org/](http://shiro.apache.org/)
 Spring Session | Распределённая сессия | [http://projects.spring.io/spring-session/](http://projects.spring.io/spring-session/)
 MyBatis | ORM фреймворк | [http://www.mybatis.org/mybatis-3/ru/index.html](http://www.mybatis.org/mybatis-3/ru/index.html)
 MyBatis Generator | Генерация кода | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html)
 PageHelper | MyBatis плагин физического разделения | [http://git.oschina.net/free/Mybatis_PageHelper](http://git.oschina.net/free/Mybatis_PageHelper)
 Druid | Подключение к базе данных | [https://github.com/alibaba/druid](https://github.com/alibaba/druid)
 FluentValidator | Валидатор | [https://github.com/neoremind/fluent-validator](https://github.com/neoremind/fluent-validator)
 Thymeleaf | Шаблонизатор | [http://www.thymeleaf.org/](http://www.thymeleaf.org/)
 Velocity | Шаблонизатор | [http://velocity.apache.org/](http://velocity.apache.org/)
 ZooKeeper | Координация распределённой системы | [http://zookeeper.apache.org/](http://zookeeper.apache.org/)
 Dubbo | Распределённый сервисный фреймворк | [http://dubbo.io/](http://dubbo.io/)
 TBSchedule & Elastic-Job | Распределённый задачный фреймворк | [https://github.com/dangdangdotcom/elastic-job](https://github.com/dangdangdotcom/elastic-job)
 Redis | Распределённая система кэширования | [https://redis.io/](https://redis.io/)
 Solr & Elasticsearch | Распределённый полнотекстовый поиск | [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/)Quartz | Фреймворк управления задачами | [http://www.quartz-scheduler.org/](http://www.quartz-scheduler.org/)
Ehcache | Фреймворк кэширования | [http://www.ehcache.org/](http://www.ehcache.org/)
ActiveMQ | Система очередей сообщений | [http://activemq.apache.org/](http://activemq.apache.org/)
JStorm | Система реального времени вычислений потока | [http://jstorm.io/](http://jstorm.io/)
FastDFS | Распределенная файловая система | [https://github.com/happyfish100/fastdfs](https://github.com/happyfish100/fastdfs)
Log4J | Компонент логгирования | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/)
Swagger2 | Фреймворк для тестирования API | [http://swagger.io/](http://swagger.io/)
Sequence | Распределенная система генерации уникальных ID | [http://git.oschina.net/yu120/sequence](http://git.oschina.net/yu120/sequence)
AliOSS & Qiniu & QcloudCOS | Облачное хранилище | [https://www.aliyun.com/product/oss/](https://www.aliyun.com/product/oss/) [http://www.qiniu.com/](http://www.qiniu.com/) [https://www.qcloud.com/product/cos](https://www.qcloud.com/product/cos)
Protobuf & JSON | Сериализация данных | [https://github.com/google/protobuf](https://github.com/google/protobuf)
Jenkins | Инструмент непрерывной интеграции | [https://jenkins.io/index.html](https://jenkins.io/index.html)
Maven | Управление сборкой проекта | [http://maven.apache.org/](http://maven.apache.org/)
Netty-socketio | Реальное время передача данных | [https://github.com/mrniko/netty-socketio](https://github.com/mrniko/netty-socketio)

#### Передовые технологии:Технология | Название | Официальный сайт
------------|----------|-----------------
jQuery      | Библиотека функций | [http://jquery.com/](http://jquery.com/)
Bootstrap   | Фреймворк для веб-разработки | [http://getbootstrap.com/](http://getbootstrap.com/)
Bootstrap-table | Таблицы данных для Bootstrap | [http://bootstrap-table.wenzhixin.net.cn/](http://bootstrap-table.wenzhixin.net.cn/)
Font-awesome | Шрифты иконок | [http://fontawesome.io/](http://fontawesome.io/)
Material-design-iconic-font | Шрифты иконок | [https://github.com/zavoloklom/material-design-iconic-font](https://github.com/zavoloklom/material-design-iconic-font)
Waves       | Эффект нажатия кнопки | [https://github.com/fians/Waves](https://github.com/fians/Waves)
zTree       | Виджет дерева | [http://www.treejs.cn/v3/](http://www.treejs.cn/v3/)
Select2     | Виджет выбора | [https://github.com/select2/select2](https://github.com/select2/select2)
Jquery-confirm | Виджет модальных окон | [https://github.com/craftpip/jquery-confirm](https://github.com/craftpip/jquery-confirm)
jQuery EasyUI | Коллекция UI-компонентов на основе jQuery | [http://www.jeasyui.com](http://www.jeasyui.com)
React       | Фреймворк для создания интерфейсов | [https://github.com/facebook/react](https://github.com/facebook/react)
Editor.md   | Редактор Markdown | [https://github.com/pandao/editor.md](https://github.com/pandao/editor.md)
ZhengAdmin  | Шаблон управления административной панели | [https://github.com/shuzheng/zhengAdmin](https://github.com/shuzheng/zhengAdmin)
AutoMail    | Автоматическое заполнение адреса электронной почты | [https://github.com/shuzheng/autoMail](https://github.com/shuzheng/autoMail)
Zheng.jprogress.js | Виджет прогресс-бара | [https://github.com/shuzheng/zheng.jprogress.js](https://github.com/shuzheng/zheng.jprogress.js)
Zheng.jtotop.js | Виджет "вернуться вверх" | [https://github.com/shuzheng/zheng.jtotop.js](https://github.com/shuzheng/zheng.jtotop.js)
Socket.io.js | Виджет Socket.IO | [https://socket.io/](https://socket.io/)#### Архитектурная схема

![Архитектурная схема](project-bootstrap/architect.png)

#### Зависимости модулей

![Зависимости модулей](project-bootstrap/project.png)

#### Описание модулей

> zheng-common

Модуль общего назначения, использующий Spring + Spring MVC + MyBatis для интеграции фреймворков. Включает в себя конфигурацию, расширяемый плагин MyBatis Generator, базовый сервис BaseService, набор утилит и т.д.

> zheng-admin

Ответственный за создание адаптивного интерфейса управления системами на основе Material Design с использованием библиотеки Bootstrap. Все системы управления проектом `zheng` используют этот модуль для отображения интерфейса.

> zheng-ui

Шаблоны Thymeleaf для фронтенд части различных подсистем, модуль фронтендовых ресурсов, использует прокси Nginx для разделения статических и динамических ресурсов.

> zheng-upms

Этот системный компонент представляет собой универсальную платформу управления доступом с использованием RBAC и детализированного контроля прав доступа на основе пользователя, предоставляющую единую точку входа, управление сессиями и логами. Включаемые системы могут свободно определять организации, роли, права доступа, ресурсы и т.д. Право доступа пользователя = объединение всех прав доступа ролей + добавленные права пользователя - отозванные права пользователя, приоритет: отозванные права пользователя > добавленные права пользователя > права доступа ролей> zheng-oss

Система хранения файлов, предлагаемые четыре варианта:

- **АлиБаба Облако** OSS
- **Tencent Облако** COS
- **Qiniu Облако**
- Локальное распределённое хранилище

![АлиБаба Облако OSS](project-bootstrap/aliyun-oss-post-callback.png)

> zheng-api

Сетевой шлюз, предоставляющий унифицированный набор API и упаковывающий ответы, включает интерфейсы взаимодействия между различными подсистемами, открытые внешние интерфейсы, зашифрованные интерфейсы, документацию интерфейсов и т. д., поддерживает такие функции как проверка подписей, аутентификацию, маршрутизацию, ограничение скорости, мониторинг, отказоустойчивость, логирование и т. д. Примерная диаграмма:

![Сетевой шлюз](project-bootstrap/gateway_config.png)

> zheng-cms

Система управления контентом: поддерживает многоязычность, категории, мощную систему отзывов, базовый одиночный просмотр, менеджмент меню, настройки системы и т. д.

> zheng-pay

- Одностраничная система решения задачи платежа, унифицированный интерфейс заказа, поддерживающий Alipay, WeChat Pay, банковские карты и другие способы оплаты. Чистый платёжный сервис, не связанный с бизнесом.

- Унифицированный интерфейс заказа (унифицированный интерфейс заказа, унифицированный сканер QR-кода), управление заказами, анализ данных, финансовые отчёты, управление мерчантами, управление каналами, система сверки, мониторинг системы.![Унифицированный сканер QR-кода для оплаты](project-bootstrap/zheng-pay.png)

> zheng-ucenter

Универсальная система управления пользователями, реализует наиболее часто используемые функции регистрации, входа, управления данными пользователя, личного центра, авторизации через третьих сторон и т.д., поддерживает расширяемое вторичное развитие.

> zheng-wechat-mp

Платформа управления официальным аккаунтом WeChat, кроме выполнения базовых функций автоматического ответа сайта, управления меню, управления материалами, управления пользователями, массовой рассылки сообщений и т.д., также предлагает функции продвижения через QR-код, маркетинговые кампании, микросайты, членство, скидочные купоны и т.д.

> zheng-wechat-app

Платформа управления WeChat Mini Program

> zheng-message

Система реального времени для отправки сообщений, основанная на Netty и Socket.IO, поддерживает пространства имён, двоичные данные, SSL, ACK и т.д.

## Настройка окружения (в группе QQ есть "zheng_окружение_настройка_и_развертывание_системы.doc")

### Разработочные инструменты:
- MySql: база данных
- Jetty: сервер разработки
- Tomcat: приложение сервер
- SVN|Git: система контроля версий
- Nginx: сервер прокси
- Varnish: ускоритель HTTP
- IntelliJ IDEA: среда разработки
- PowerDesigner: инструмент моделирования
- Navicat for MySQL: клиент базы данных

### Разработка окружение:
- Jdk7+
- Mysql5.5+
- Redis
- Zookeeper
- ActiveMQ
- Dubbo-admin
- Dubbo-monitor### Инструменты установки

Документация по созданию окружения и развертыванию системы (Автор: Xiao Bing, доступна для скачивания в QQ группе).

### Ресурсы загрузки

- 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")
- 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")
- Nginx [http://nginx.org/en/download.html](http://nginx.org/en/download.html "Nginx")
- 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")
- Дополнительные ресурсы доступны в 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 и импортируйте файл `zheng.sql`, расположенный в папке `project-datamodel`.

- Измените конфигурационные файлы `redis.properties`, `jdbc.properties` и `generator.properties` для каждого модуля dao и rpc-service, указав правильные данные подключения к базе данных. Пароли 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` (вызов метода `main()` класса `ZhengUpmsRpcServiceApplication`) => `zheng-upms-server`(jetty), затем запустите соответствующие сервисы `zheng-xxx-rpc-service` (вызов метода `main()` класса `ZhengXxxRpcServiceApplication`) => `zheng-xxx-webapp`(jetty).

![Пример запуска](project-bootstrap/start.png)

- Доступен по адресу [http://upms.zhangshuzheng.cn:1111/](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](http://git.oschina.net/shuzheng/zheng/attach_files)

> ** Zheng-OSS **

- В первую очередь запустите сервис `zheng-oss-web`.

- На этапе разработки, если `zheng-oss-web` не имеет публичного доменного имени, рекомендуется использовать инструмент `ngrok` для проброса внутреннего порта на внешний, что позволит выполнять операцию обратного вызова при загрузке.

- Запустите nginx как прокси для статических ресурсов `zheng-ui`.


### Пример разработки (в группе QQ есть видео «Zheng десять минут: от получения до запуска.wmv»)

- Создание таблицы данных (рекомендовано использование PowerDesigner)

- Вызов метода `generator.main()` соответствующего модуля dao проекта позволяет автоматически создать CRUD функционал для одной таблицы и соответствующие модели (`model`), примеры (`example`), мапперы (`mapper`) и сервисы (`service`).    - Генерируемые модели и примеры реализуют интерфейс `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 приложений.

- Jar-пакет rcp-service сервис-провайдера: после распаковки tar.gz файла zheng-xxx-rpc-service-assembly.tar.gz используйте управляемые скрипты из папки bin для запуска, поддерживается грациозное завершение работы.

### Нормы и соглашения о фреймворке

Соглашение лучше конфигурации (convention over configuration), этот фреймворк установил много правил программирования, они приведены ниже:
  • Классы сервиса должны находиться в пакете с названием service, заканчивающегося на Service, например CmsArticleServiceImpl. ```- Контроллеры должны располагаться в пакете, название которого заканчивается на controller, классы должны называться с суффиксом `Controller`, например `CmsArticleController.java`, и наследовать `BaseController`.

  • Классы Spring задач должны находиться в пакете с названием task, заканчивающимся на Task, например TestTask.java.

  • Файлы мапперов XML должны располагаться в пакете с названием mapper, заканчивающихся на Mapper.xml, например CmsArticleMapper.xml.

  • Интерфейсы мапперов должны находиться в пакете с названием mapper, заканчивающихся на Mapper, например CmsArticleMapper.java.

  • Энтитеты модели должны находиться в пакете с названием model, названия должны следовать правилу преобразования таблиц в camelCase, например CmsArticle.java.

  • Конфигурационные файлы Spring должны иметь имя в виде applicationContext-*.xml.

  • Имена классов: camelCase с большой буквы; методы: camelCase с маленькой буквой; константы: все заглавные; переменные: camelCase с маленькой буквой, следует избегать использования сокращений.

  • Настройки Spring MVC должны добавляться в файл springMVC-servlet.xml соответствующего модуля.

  • Конфигурационные файлы должны располагаться в директории src/main/resources.

  • Статические ресурсы должны храниться в директории src/main/webapp/resources.

  • JSP файлы должны располагаться в директории /WEB-INF/jsp.

  • Адреса RequestMapping и пути представлений должны быть полными, например: @RequestMapping("/manage"), return "/manage/index".- Методы RequestMapping должны быть указаны явно.

  • Модули должны называться в формате Проект-Подпроект-Бизнес, например zheng-cms-admin.

  • Таблицы данных должны называться в формате Подсистема_Таблица, например cms_article.


Пример

Адрес демонстрации: http://upms.zhangshuzheng.cn/

Предварительный просмотр

idea вход upms CMS Swagger

Модели данных

Модель базы данных

Топология

Топология

Процесс разработки

Процесс разработки

Участники разработки

Сначала большое спасибо всем за поддержку. Если вы хотите принять участие в разработке, приветствуем fork этого проекта через GitHub и отправьте Pull Request с вашими изменениями.

Часто задаваемые вопросы

  • В 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 из скрипта.

Отличные статьи и блоги

Онлайн-документация

Лицензия

MIT

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/shuzheng-zheng.git
git@api.gitlife.ru:oschina-mirror/shuzheng-zheng.git
oschina-mirror
shuzheng-zheng
shuzheng-zheng
master