лысый
Привет всем, яждать Най.
Потребовалось пол года, чтобы получить печеньопыт управленияБыстрое развитие проектов с открытым исходным кодом, хе-хе.
Адрес проекта:
- Гитхаб:GitHub.com/YuNaiV/Если есть…
- Гостиница:git ee.com/Я видел небо…
Недавно я начал изучать uniapp и собираюсь сделать апплет WeChat в качестве C-терминала, хе-хе.
Попроси звезду, ты можешь вау?
v1.0.0 Список изменений
Первая версия, основанная на рефакторинге RuoYi-Vue, состоит в основном из трех аспектов:
- рефакторинг кода
- Корректировка технического отбора
- Добавлены фоновые функции
следовательно,v1.0.0
Журнал изменений разделен на три аспекта для записи.
рефакторинг кода
- Настройте общую структуру кода, объедините несколько модулей Maven в один и используйте пакеты Java для раздельной изоляции, напримеркартинапоказано. Причина в том, что с постепенным усложнением бизнес-логики управление зависимостями нескольких модулей Maven станет большой проблемой.
- расколотьframeworkДля нескольких модулей Maven следуйтеWeb,Security,MyBatis,Redisи другие различные компоненты для инкапсуляции и расширения.
- на основеJUnit5а такжеMockito, реализовать модульное тестирование, чтобы убедиться в корректности функций и ремонтопригодности кода. Всегда автоматизировано, всегда круто!
- Добавьте файлы конфигурации SpringBoot для нескольких сред, чтобы обеспечить полнуюdeploy.shсценарии развертывания иУчебник по развертыванию Jenkins.
- оптимизацияSpring SecurityКод, реализующий разрешения для повышения удобочитаемости и удобства сопровождения.
- Увеличьте локальный кеш (меню, роли, словарь данных и т. д.) для повышения производительности. Обновление кеша в режиме реального времени достигается за счет подписки и публикации Redis.
- УвеличиватьVOКласс как объект ответа интерфейса API позволяет избежать прямой связи между сущностью базы данных и внешним интерфейсом.
- оптимизацияЖурнал операций, который поддерживает чтение Swagger как содержимого журнала.
- оптимизациязадача на время, поддержка повторной попытки выполнения при сбое и более совершенный журнал выполнения.
- оптимизацияcodegenГенератор кода генерирует дополнительный код для VO и модульного тестирования на основе исходного кода для Controller, Service, Mapper, объектов базы данных и Vue.
- Настройте файл для использования вместо этогобаза данныххранилище, а не файловая система. Причина в том, что когда проект развертывает несколько сервисных узлов, файлы необходимо синхронизировать. В будущем будут добавлены облачные сервисы хранения, такие как Alibaba Cloud и Qiniu Cloud.
- Удалите запрос связанной таблицы и рекурсивный запрос исходной базы данных и измените метод работы с одной таблицей, несколько операций чтения + объединение памяти.
- Оптимизируйте формат кода Java и решите проблему предупреждения кода IDEA.
Добавлены фоновые функции
- Добавить APIдоступа такжеаномальныйlog, который удобен для устранения проблем с онлайн-API.
- Увеличиватьглобальный код ошибки, унифицированное управление бизнес-исключениями. Фон управления будет поддерживать управление кодами ошибок и настраиваемую подсказку.
- УвеличиватьСМС-модуль, обеспечивает управление каналами SMS, шаблонами SMS и журналами SMS и подключается к основным платформам SMS, таким как Alibaba Cloud и Yunpian.
- Добавить RedisKeyуправление, знать формат, тип данных, срок действия, описание и т. д. ключа Redis, используемого в проекте.
Корректировка технического отбора
- Обновите версию Spring Boot с 2.1.3 до последней версии 2.4.5.
- Увеличиватьbomфайл для унификации управления зависимостями Maven.
- представлятьMyBatis PlusКомпоненты упрощают использование MyBatis и повышают эффективность разработки.
- представлятьRedissonКомпоненты, действующие как клиенты Redis, обеспечивают более мощные операции Redis.
- Функция распределенной очереди сообщений реализована на базе Redis. Доступ к RedisPub/SubРеализуйте широковещательное потребление и получите доступ к RedisStreamРеализовать потребление кластера.
- Удалитьfastjson, используется равномерноJacksonКак библиотека JSON, печаль старых дыр в безопасности.
- представлятьMapStructКомпонент, реализующий преобразование между сущностями базы данных и классами VO.
- представлятьLombokКомпоненты, генерировать общие методы, такие как сеттеры и геттеры, и удалять избыточный код.
- Вводить веснуAsyncфункция для реализации асинхронных задач. Например, асинхронно вести журналы доступа к API, журналы действий администратора и т. д.
- волшебное изменениеApolloкомпонентов, получить доступ к локальной базе данных и реализовать встроенный центр конфигурации. С точки зрения непрофессионала, мы можем добавить оригинал к
application.yaml
Вместо этого элемент конфигурации добавляется в базу данных, и он будет прочитан при запуске проекта. - представлятьHutoolКомпоненты, удалить множество повторяющихся классов инструментов и избежать некоторых ошибок в оригинальном Util.
- представлятьScrewКомпонент, реализующий генерацию документов базы данных, хотя, похоже, сейчас используется меньше.
- представлятьEasyExcel, который предоставляет функции импорта и экспорта Excel.
- выполнитьIdempotentКомпонент, который реализует идемпотентные функции и может использоваться для решения проблемы повторных HTTP-запросов.
- представлятьLock4J, чтобы реализовать функцию декларативной распределенной блокировки. Хотя Redisson имеет встроенную функцию распределенной блокировки, она объявляет
@Lock4j
Использование аннотаций удобнее и подходит для большинства сценариев. - Удалите исходный мониторинг службы, используйтеSpringBoot AdminВместо этого предоставьте более полные возможности мониторинга.
- представлятьSkyWalkingКомпонент, реализующий функции отслеживания ссылок и лог-сервисов. Благодаря отслеживанию ссылок мы можем видеть MySQL, Redis и другие операции, связанные с запросом API; через службу журналов мы можем легко просматривать журналы каждого экземпляра службы.
- представлятьResilience4jКомпоненты для ограничения тока, плавких предохранителей и других функций для обеспечения стабильности службы.
- представлятьKnife4j, украсить документацию интерфейса. Изначально отсутствуют все документы по интерфейсу API, и они доработаны, видно, чтоapi-dashboard.yudao.iocoder.cn/doc.htmlадрес.
Введение в платформу
Таро Роуд,задаватьВсе с открытым исходным кодомизПредприятиеПлатформа быстрой разработки бесплатна для частных лиц и предприятий без каких-либо оговорок.
Любые вопросы или желаемые функции можно найти по адресуIssuesупоминается в середине.
- Принятие внешнего интерфейсаvue-element-admin.
- Серверная часть использует Spring Boot, MySQL и Redis.
- Аутентификация авторизации использует Spring Security & Token, который поддерживает многотерминальную систему аутентификации.
- Поддержка загрузки динамического меню разрешений, простое управление разрешениями несколькими способами.
- Эффективная разработка: используйте генератор кода для генерации внешнего и внутреннего кода одним щелчком мыши.
Встроенная функция
Разделяется на три встроенные функции:
- Системные функции
- инфраструктура
- Инструменты НИОКР
Дружеское напоминание: этот проект модифицирован на основе RuoYi-Vue,Рефакторинг и оптимизациявнутренний код,украшатьпередний интерфейс.
Для дополнительных добавленных функций мы помечаем их 🚀.
🙂 Все функции черезмодульный тестГарантия высокого качества.
Системные функции
Функции | описывать | |
---|---|---|
Управление пользователями | Пользователь является системным оператором, эта функция в основном завершает настройку пользователя системы. | |
онлайн-пользователь | Активный мониторинг состояния пользователя в текущей системе, поддержка ручного запуска | |
управление ролями | Назначение разрешений меню ролей, настройка ролей Разделение разрешений области данных по учреждениям | |
управление меню | Настройте системное меню, полномочия управления, идентификацию полномочий кнопок и т. д. | |
Управление отделом | Настройте организацию системы (компания, отдел, команда), древовидную структуру для отображения разрешений на данные поддержки. | |
Управление сообщениями | Настройка должности системного пользователя | |
Управление словарем | Поддерживать некоторые относительно фиксированные данные, которые часто используются в системе | |
🚀 | SMS-управление | Канал SMS, шаблон SMS, журнал SMS, подключение к основным платформам SMS, таким как Alibaba Cloud и Yunpian. |
🚀 | Журнал операций | Ведение журнала и запрос нормальной работы системы, интеграция Swagger для создания содержимого журнала |
журнал входа | Запрос записи журнала входа в систему, включая исключения входа | |
🚀 | Управление кодами ошибок | Управление всеми кодами ошибок в системе, подсказки об ошибках могут быть изменены онлайн без перезапуска службы |
объявление | Выпуск информации об объявлении системного уведомления и техническое обслуживание |
инфраструктура
Функции | описывать | |
---|---|---|
🚀 | Управление конфигурацией | Динамическая настройка общих параметров системы, поддержка загрузки SpringBoot |
задача на время | Планирование задач онлайн (добавление, изменение, удаление) включает журнал результатов выполнения | |
🚀 | файловая служба | Поддерживает локальное хранилище файлов, а также облачные сервисы и компоненты с открытым исходным кодом, совместимые с протоколом Amazon S3. |
🚀 | Журналы API | Включая журнал доступа RESTful API и журнал исключений, что удобно для устранения неполадок, связанных с API. |
мониторинг MySQL | Отслеживайте текущее состояние пула соединений с системной базой данных и анализируйте SQL, чтобы найти узкие места в производительности системы. | |
Мониторинг Redis | Отслеживайте использование базы данных Redis и управляйте используемым ключом Redis. | |
🚀 | Java-мониторинг | Мониторинг Java-приложений на основе Spring Boot Admin |
🚀 | отслеживание ссылок | Доступ к компонентам SkyWalking для отслеживания ссылок |
🚀 | бревенчатый центр | Получите доступ к компоненту SkyWalking, чтобы реализовать центр бревен. |
🚀 | Распределенная блокировка | Внедрение распределенных блокировок на основе Redis для соответствия параллельным сценариям. |
🚀 | Идемпотентные компоненты | Внедрить идемпотентные компоненты на основе Redis для решения проблемы повторных запросов |
🚀 | Гарантия обслуживания | На основе Resilience4j для обеспечения стабильности обслуживания, включая ограничение тока, плавкие предохранители и другие функции. |
🚀 | служба журнала | Легкий центр журналов, просмотр журналов удаленных серверов |
🚀 | модульный тест | Внедрить модульное тестирование на основе JUnit + Mockito для обеспечения функциональной корректности, качества кода и т. д. |
Инструменты НИОКР
Функции | описывать | |
---|---|---|
🚀 | генерация кода | Генерация внешнего и внутреннего кода (Java, Vue, SQL, модульное тестирование), поддержка загрузки CRUD |
🚀 | системный интерфейс | Автоматически создавать соответствующую документацию по интерфейсу RESTful API на основе Swagger. |
🚀 | документация по базе данных | Автоматически генерировать документы базы данных на основе Screw, поддерживать экспорт в форматы Word, HTML, MD |
форма здания | Перетащите элементы формы для создания соответствующего HTML-кода. |
онлайн опыт
Демонстрационный адрес:dashboard.yudao.iocoder.cn
- Пароль учетной записи: admin/admin123
Адрес документа:Woohoo. Кодировщик ввода/вывода. способности /categories/…
Документы и видео будут добавлены в будущем, чтобы помочь толстым друзьям спешить!
стек технологий
проект | иллюстрировать |
---|---|
yudao-dependencies |
Управление версиями зависимостей Maven |
yudao-framework |
Расширение фреймворка Java |
yudao-admin-server |
Управление внутренним сервером |
yudao-admin-ui |
Пользовательский интерфейс администратора |
yudao-user-server |
Пользовательский интерфейсный сервер |
yudao-user-ui |
UI интерфейс переднего плана пользователя |
задняя часть
Рамка | иллюстрировать | Версия | учебное пособие |
---|---|---|---|
Spring Boot | Среда разработки приложений | 2.4.5 | Документация |
MySQL | сервер базы данных | 5.7 | |
Druid | Пул соединений JDBC, компоненты мониторинга | 1.2.4 | Документация |
MyBatis Plus | Комплект расширения MyBatis | 3.4.1 | Документация |
Dynamic Datasource | динамический источник данных | 3.3.2 | Документация |
Redis | база данных "ключ-значение" | 5.0 | |
Redisson | Клиент Redis | 3.1.46 | Документация |
Spring MVC | Фреймворк MVC | 5.4.6 | Документация |
Spring Security | Спринг-фреймворк безопасности | 5.4.6 | Документация |
Hibernate Validator | Компонент проверки параметров | 6.1.7 | Документация |
Quartz | компонент планирования задач | 2.3.2 | Документация |
Knife4j | Реализация расширенного пользовательского интерфейса Swagger | 3.0.2 | Документация |
Resilience4j | Компоненты гарантии обслуживания | 1.7.0 | Документация |
SkyWalking | Распределенная система отслеживания приложений | 8.5.0 | Документация |
Spring Boot Admin | Платформа мониторинга Spring Boot | 2.3.1 | Документация |
Jackson | Библиотека инструментов JSON | 2.11.4 | |
MapStruct | Преобразование Java-бина | 1.4.1 | Документация |
Lombok | Избавьтесь от многословного кода Java | 1.16.14 | Документация |
JUnit | Среда модульного тестирования Java | 5.7.1 | - |
Mockito | Java-мок-фреймворк | 3.6.28 | - |
внешний интерфейс
Рамка | иллюстрировать | Версия |
---|---|---|
Vue | Фреймворк JavaScript | 2.6.12 |
Vue Element Admin | Бэкенд-фронтенд решения | - |
демонстрационная карта
Системные функции
модуль | biu | biu | biu |
---|---|---|---|
Войти и Главная | |||
Пользователь | - | ||
Отделы и должности | - | ||
Меню и роли | - | ||
Журнал аудита | - | ||
Короткое сообщение | |||
Словарь | - | ||
Коды ошибок и уведомления | - |
инфраструктура
модуль | biu | biu | biu |
---|---|---|---|
Документация и конфигурация | - | ||
задача на время | - | ||
Журналы API | - | ||
MySQL & Redis | - | ||
платформа мониторинга |
Инструменты НИОКР
модуль | biu | biu | biu |
---|---|---|---|
генерация кода | |||
Документация | - |