Общение в 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/)#### Архитектурная схема

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

#### Описание модулей
> 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 Облако**
- Локальное распределённое хранилище

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

> zheng-cms
Система управления контентом: поддерживает многоязычность, категории, мощную систему отзывов, базовый одиночный просмотр, менеджмент меню, настройки системы и т. д.
> zheng-pay
- Одностраничная система решения задачи платежа, унифицированный интерфейс заказа, поддерживающий Alipay, WeChat Pay, банковские карты и другие способы оплаты. Чистый платёжный сервис, не связанный с бизнесом.
- Унифицированный интерфейс заказа (унифицированный интерфейс заказа, унифицированный сканер QR-кода), управление заказами, анализ данных, финансовые отчёты, управление мерчантами, управление каналами, система сверки, мониторинг системы.
> 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).

- Доступен по адресу [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/
Сначала большое спасибо всем за поддержку. Если вы хотите принять участие в разработке, приветствуем 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
из скрипта.
Как интернет-стартапы создают свои технологические архитектуры
Основы единого входа и простой пример реализации- Обсуждение управления правами доступа на форуме ITeye
Новый взгляд на RBAC: управление правами доступа на основе ресурсов (Resource-Based Access Control)
Чтение Redis и конфигурирование главного/вторичного кластера и высоконагруженной среды
Redis Sentinel — Реализация высокой доступности Redis- Установка ELK (Elasticsearch, Logstash, Kibana) для создания платформы реального времени анализа логов
Привязка данных в Spring MVC для простых объектов, Set, List, Map и решение распространённых проблем
Стань настоящим мужчиной, стань зрелым мужчиной, стань мужиком со стратегическим мышлением- Онлайн-генератор Cron-выражений
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )