Проект Mango
Mango — это система управления правами доступа, основанная на таких технологиях, как Spring Boot, Spring Cloud, Vue.js и Element UI. Она представляет собой систему с разделением на клиентскую и серверную части, которая обеспечивает управление правами доступа.
Система Mango также является примером платформы для быстрой разработки на Java EE, которая может быть использована разработчиками как для изучения технологий, так и для создания конкретных проектов.
Обложка книги
[Изображение]
Ссылки на книгу
Техническая коммуникация
Для обсуждения вопросов и обмена опытом автор создал группу в QQ. Присоединяйтесь!
QQ: 429854222
Блог автора: https://www.cnblogs.com/xifengxiaoma/
Функциональный список
✔ Система входа: вход пользователя, аутентификация (с использованием токенов).
✔ Управление пользователями: создание, изменение, удаление и поиск пользователей.
✔ Управление организациями: создание, изменение, удаление и поиск организаций.
✔ Управление ролями: создание, изменение, удаление и поиск ролей.
✔ Управление меню: создание, изменение, удаление и поиск меню.
✔ Управление словарями: создание, изменение, удаление и поиск словарей.
✔ Управление конфигурацией: создание, изменение, удаление и поиск конфигурации.
✔ Журнал входа: запись журнала входа пользователей, просмотр записей журнала входа.
✔ Операционный журнал: запись операционного журнала пользователей, просмотр записей операционного журнала.
✔ Онлайн-пользователи: отображение статистики текущих онлайн-пользователей на основе статуса входа.
✔ Мониторинг данных: настройка информации Druid, предоставление эффективного мониторинга SQL-данных.
✔ Агрегированный документ: настройка Swagger-документа, предоставление лаконичного и красивого API-документа.
✔ Резервное копирование и восстановление: резервное копирование данных системы и их восстановление.
✔ Переключение тем: поддержка переключения тем, настройка цвета темы, реализация переключения тем.
✔ Сервисное управление: интеграция с Consul для регистрации сервисов и обнаружения.
✔ Серверное наблюдение: интеграция со Spring Boot Admin для всестороннего наблюдения за сервисами.
✔ Вызов сервиса: интеграция с Ribbon и Feign для вызова сервисов и балансировки нагрузки.
✔ Отключение сервиса: интеграция с Hystrix и Turbine для отключения сервисов и мониторинга.
✔ Сетевой шлюз: интеграция с Spring Cloud Zuul для реализации единого сетевого шлюза API.
✔ Трассировка цепочки: интеграция с Sleuth и Zipkin для отслеживания распределённых цепочек вызовов.
✔ Центр конфигурации: интеграция с Cloud Config и Bus для реализации распределённого центра конфигурации.
Архитектура программного обеспечения
Клиентская архитектура
Среда разработки
IDE: VS Code 1.27
NODE: Node 10.15.x
NPM: NPM 6.4.x
Выбор технологии
Frontend framework: Vue 2.x
Компоненты страницы: Element 2.x
Управление состоянием: Vuex 2.x
Взаимодействие с сервером: axios 0.18.x
Иконки: Font Awesome 4.x
Структура проекта
mango-ui
— build: модули, связанные с компиляцией проекта, автоматически генерируются шаблонами проекта.
— config: модули, связанные с конфигурацией проекта, автоматически генерируются шаблонами проекта.
— src: исходный код проекта, основная работа по разработке выполняется в этом каталоге.
— assets: статические ресурсы, такие как значки, шрифты и информация о локализации.
— components: библиотека компонентов, инкапсуляция часто используемых компонентов.
— http: модуль взаимодействия с сервером, унифицированный интерфейс запросов к серверу API.
— i18n: модуль интернационализации, использование Vue i18n для интернационализации.
— mock: модуль Mock, имитация вызовов интерфейса и возврат настроенных данных.
— permission: модуль контроля разрешений, обработка логики аутентификации разрешений.
— router: модуль маршрутизации, отвечает за настройку различных маршрутов страниц.
— store: модуль управления состоянием, предоставляет способ совместного использования состояния между компонентами.
— utils: модуль инструментов, предоставляет некоторые общие методы инструментов.
— views: модуль страниц, в основном размещает различные компоненты представления страниц.
Серверная архитектура
Среда разработки
IDE: eclipse 4.x
JDK: JDK1.8.x
Maven: Maven 3.5.x
MySQL: MySQL 5.7.x
Consul: Consul 1.4.0
Выбор технологии
Основная структура: Spring Boot 2.x
Сервисное управление: Spring Cloud Finchley
Безопасность: Spring Security 5.x
Представление: Spring MVC 5.x
Постоянное хранилище: MyBatis 3.x
Пул соединений с базой данных: Druid 1.x
Очередь сообщений: RabbitMQ
Документ API: Swagger 2.9.x
Ведение журнала: SLF4J, Log4j
Структура проекта
mango-common: общий код, в основном содержит некоторые классы инструментов.
mango-core: инкапсулирует бизнес-модули, в основном инкапсулирует общие бизнес-модули.
mango-admin: бэкэнд-управление, включая управление пользователями, управление ролями, управление меню и т. д.
mango-backup: резервное копирование системных данных, можно выбрать независимую установку.
mango-monitor: мониторинг системы, мониторинг служб Spring Boot.
mango-producer: пример поставщика услуг, удобный для построения модулей на этой основе.
mango-consumer: пример потребителя услуг, удобный для построения модулей на этой основе.
mango-hystrix: отключение службы и мониторинг, сбор и обобщение статистики отключения.
mango-zuul: сетевой шлюз API, централизованное управление и пересылка внешних вызовов запросов.
mango-config: центр конфигурации, генерация интерфейсов доступа к файлам конфигурации GIT.
mango-consul: центр регистрации, каталог установки и руководства по установке.
mango-zipkin: отслеживание цепочки, каталог установки и руководство по установке.
config-repo: репозиторий конфигурации, централизованно хранит файлы конфигурации системы в GIT.
mango-pom: агрегатный модуль, только для упрощения упаковки, выполнение упаковки всех модулей одним ключом.
Руководство по установке
Установка клиента
Получите исходный код клиента, весь клиентский проект — это один проект mango-ui, скопируйте его в локальный каталог.
Скомпилируйте исходный код в каталоге mango-ui с помощью команды npm install, чтобы загрузить и установить зависимости проекта.
Запустите проект с помощью команды npm run dev, запустите проект, после запуска вы можете получить доступ через http://localhost:8080.
Упакуйте проект с помощью команды npm run build, упакуйте клиентский проект, после упаковки будет создан каталог dist. Поместите сгенерированный каталог непосредственно в веб-сервер, такой как Tomcat, и запустите службу для доступа.
Включите или отключите функцию Mock: эта система использует архитектуру разделения клиента и сервера, если функция Mock включена на клиенте, большинство интерфейсных данных могут быть смоделированы. Измените значение переменной openMock в файле src/mock/index.js, чтобы включить или отключить функцию Mock.
Измените конфигурацию: если вы хотите настроить порт (по умолчанию 8080), вы можете изменить свойство port в config/index.js. Конфигурация серверного интерфейса и резервного сервера находится в src/utils/global.js, пожалуйста, внесите соответствующие изменения, если необходимо.
Установка сервера
Получите исходный код сервера, получите все проекты в структуре, указанной выше, и скопируйте их в локальный каталог.
Импортируйте проект Maven с помощью Eclipse, перед этим убедитесь, что у вас установлены JDK и Maven.
Скомпилируйте исходный код:
А. Запустите Maven с помощью mvn clean install для компиляции исходного кода.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )