** 近期服务器用来部署一些其他的服务了,体验地址暂时不可用,建议自己clone下工程,然后自己运行!!!**
yx-framework
yx信息技术平台
Общая архитектура:
- yx-framework — yx информация.
-
yx-common — общий шаблон.
-
yx-generator — генератор кода.
-
yx-job — модуль для задач по расписанию.
-
yx-business — модуль сборки бизнес-логики (используется как для вызова, так и для предоставления услуг).
-
yx-service — микросервисный модуль.
- yx-sys — базовый сервис системы (предоставление услуг).
- yx-sys-common — перечисления и константы.
- yx-sys-model — классы сущностей.
- yx-sys-dao — интерфейс картографа.
- yx-sys-rpc-api — определение интерфейса.
- yx-sys-rpc-service — конкретная реализация.
- yx-user — клиентский модуль (предоставление услуг).
- yx-user-common —
- yx-user-model —
- yx-user-dao —
- yx-user-rpc-api —
- yx-user-rpc-service —
В зависимости от потребностей бизнеса модули будут постоянно добавляться <<<<<<<<<<<<<<<<<<<<<<<<<<<
-
yx-server — сервисный модуль вызова.
- yx-admin-server — система управления системой (вызов услуг).
- yx-web-server — веб-сайт (вызов услуг).
- yx-wx-server — WeChat (вызов услуг).
- yx-mobile-server — приложение (вызов услуг).
- yx-api-server — сторонние API (вызов услуг).
-
yx-ui — статические страницы системы.
- yx-ui-admin — страница бэкенда системы управления.
Зависимости проекта:
- Установите Maven и Lombok (в зависимости от среды разработки, способ установки может различаться).
Зависимости для запуска проекта:
- Установите MySQL, ZooKeeper, Redis и Nginx и запустите соответствующие службы.
- Запустите сервисы, предоставляющие услуги, запустив метод serviceApplication main в каждом модуле rpc-service.
- Запустите сервисы вызова, запустив метод serverApplication main в каждом -server проекте.
Основные диаграммы:
Предварительный просмотр:
- Диаграмма структуры:
- Основная диаграмма:
Описание проекта:
- Yx-framework представляет собой распределённую систему на Java, использующую интеграцию SpringBoot с открытым исходным кодом.
- Автор создал эту структуру на основе своего опыта работы, чтобы упростить разработку и позволить другим расширять архитектуру в соответствии со своими потребностями.
- Общие функции включают общие функции (базовые классы, компоненты доступа к данным, разделение чтения и записи, распределённые сеансы, HTTP-клиент, служба журналов, очередь, платёжные компоненты, кэш Redis, безопасность Web и т. д.), общую конфигурацию и инструменты.
- Система управления включает управление пользователями, отделами, меню, ролями, словарями, параметрами, журналами и мониторингом приложений.
- Бизнес-связанные функции включают оплату через WeChat и Alipay.
- Коммуникация между системами поддерживается через расширение дочерних систем, которые используют Dubbo или MQ для связи.
- Демонстрация платформы использует Maven для управления модулями проекта, что повышает удобство разработки и расширения проекта.
Ключевые функции:
- База данных: пул соединений Druid, мониторинг производительности базы данных и статистика выполнения SQL.
- Постоянный слой: MyBatis persistence, использование оптимизации MyBatis-Plus для уменьшения объёма разработки SQL; AOP для переключения баз данных для реализации разделения чтения и записи. Транзакционные аннотации для транзакций.
- MVC: на основе spring mvc аннотаций, Rest-стиль Controller. Единое управление исключениями.
- Кэш и сеанс: аннотации кэша Redis для данных, Spring-session и Redis для распределённой синхронизации сеансов, перезапуск служб не приводит к потере сеансов.
- Синхронизация данных: на основе распределённых блокировок Redis.
- Веб-безопасность: реализация XSS-фильтрации и CSR-фильтрации.
- Взаимодействие между несколькими системами: Dubbo, ActiveMQ для взаимодействия между несколькими системами.
- Разделение между фронтом и бэкэндом: фронт использует ajax для доступа к REST-сервисам бэкэнда, а бэкэнд возвращает данные в формате JSON. Страница использует nginx для обратного прокси-доступа.
- Платёжные функции: реализация оплаты через WeChat и Alipay на стороне клиента.
- Журналы: Logback для печати журналов, по умолчанию печатаются краткие журналы Web и Service.
- Инструменты: обработка строк, преобразование типов, обработка дат, IO и файлы, Excel чтение и запись, шифрование и дешифрование, HTTP-клиенты, XML-обработка, перекодирование, различные утилиты и т.д.
- Генератор кода: генерирует простой код для функций создания, изменения, удаления и запроса на основе структуры таблицы базы данных, включая model, mapper, service и controller.
Выбор технологии:
● Основная структура: Spring Boot 1.5.12.RELEASE + Dubbo 2.5.7
● Распределённая координационная служба: ZooKeeper 3.4.11
● Платформа проверки: Hibernate Validator 5.3.5.Final
● Платформа безопасности: Apache Shiro 1.4.0
● Генератор кода: MyBatis Plus Generator 2.1.6
● Структура постоянного слоя: MyBatis 3.4.5 + MyBatis-Plus 2.1.6
● Пул соединений с базой данных: Alibaba Druid 1.1.9
● Кэширующая структура: Redis.clients:jedis 2.8.2
● Очередь: Apache ActiveMQ 5.14.5
● Управление сеансами: Spring-Session 1.3.1
● Управление журналом: SLF4J 2.2.45
● Инструменты общего пользования: Hutool 3.2.3
● Платёжный компонент: Egan pay-java-parent 2.0.7
● Упрощение кода: Lombok 1.16.20
● Сериализация данных: Alibaba Fastjson 1.2.41
● HTTP-клиент: Hutool-http 4.0.10
● Фреймворк для тестирования интерфейса: Swagger2
● Шрифты и иконки: Alibaba Iconfont
● JSON Web Token (JWT): jsonwebtoken 0.9.0
Локальная установка
-
Требования к среде:
- JDK1.8+
- MySQL5.5+
- Maven3.3+
- Zookeeper3.3+
- Redis3.0+
- Nginx1.8+
- Apache Activemq-5.0+ (необязательно)
-
Выполнить SQL-файл doc/sqls/yxdb.sql для инициализации базы данных, таблиц и данных.
-
Изменить файл каждого проекта /src/main/resources/application-dev.yml, обновить пароль MySQL, IP-адрес, порт и пароль Redis, адрес Zookeeper.
-
Изменить Nginx/conf/nginx.conf, указать адреса статических и динамических страниц (см. приложение).
-
Запустить MySQL, Zookeeper, Redis и Nginx.
-
В IntelliJ IDEA меню File-Settings-Plugins добавить плагин Lombok.
-
Доступ по адресу: http://localhost, пароль: admin/123456.
-
Доступ к Swagger по адресу: http://localhost:8089/swagger-ui.html.
-
Инструменты для загрузки файлов, отправки электронной почты, SMS и т. д. могут быть недоступны. Необходимо настроить accessKeyId и accessKeySecret в таблице параметров (sys_param), чтобы использовать их.
Адрес проекта
● Gitee: https://gitee.com/thl9090/if-framework
● GitHub: https://github.com/thl9090/if-framework
Демонстрация проекта
● Адрес демонстрации: http://134.175.157.186/
● Имя пользователя и пароль: test/123456
Примечание: демонстрационная среда будет постепенно улучшаться. Необходимые файлы SQL и другие зависимости уже опубликованы в группе QQ. Присоединяйтесь к группе, чтобы получить доступ к ним. Пожалуйста, следите за проектом и ставьте звёздочку.
QQ группа: 977482984
Сканирование QR-кода для присоединения к группе

Предварительные изображения










Заявление об авторских правах
Проект yx-framework использует лицензию Apache License 2.0.
Комментарии ( 0 )