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

OSCHINA-MIRROR/yangyouwang-crud

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

Минималистичный бэкенд-менеджмент

Введение в проект

  1. Определение требований: аутсорсинговый проект, как грибы после дождя, разработка была вынуждена быть сокращена по срокам. Чтобы разработчики могли сосредоточиться на разработке бизнес-логики проекта, они должны иметь возможность уйти домой пораньше и провести время с семьёй.
  2. Позиционирование продукта: минималистичный бэкэнд-менеджмент.
  3. Особенности проекта: этот проект отличается чистым кодом, лаконичным интерфейсом, построен на springboot + layuiadmin, представляет собой монолитную систему управления бэкэндом.

Онлайн-демонстрация

Архитектура программного обеспечения

  • Основная структура: Spring Boot.
  • Структура безопасности: SpringSecurity.
  • Шаблонизатор: Thymeleaf.
  • Слой персистентности: Mybatis-Plus.
  • Управление журналами: LogBack.
  • Классы инструментов: Apache Commons, Hutool.
  • Фреймворк представления: Spring MVC.
  • Таймер: Quartz.
  • Пул соединений с базой данных: Druid.
  • Взаимодействие с веб-страницей: layuiAdmin.
  • Проверка: hibernate-Validation.
  • Интерфейс документации: Swagger.

Требования к среде

JDK >= 1.8
MySQL >= 5.7
Maven >= 3.0
redis >= 6.0.6
minio версия не требуется

Построение проекта

1. Рекомендуется использовать IDE для разработки этого проекта.
2. После создания базы данных crud в MySQL структура таблицы будет автоматически создана при запуске проекта.
3. Для каждой среды измените соответствующий файл конфигурации: application-dev.yml для среды разработки, application-prod.yml для производственной среды, application-test.yml для тестовой среды.

Конфигурационное изображение 4. Запустите класс запуска CrudApplication.java в проекте. Конфигурационное изображение

Использование

1. Контрольный слой интерфейса управляет версией и упаковывает ответ Result для глобальной обработки с использованием аннотации @ResponseResultBody.

2. Определите версию интерфейса и настройте аннотацию @ApiVersion в методе.

3. Если вы хотите, чтобы клиент мог получить доступ к интерфейсу бэкенда без входа в систему, просто добавьте аннотацию @PassToken в метод Java, и тогда этот интерфейс может обойти аутентификацию jwt.

4. В методе Java добавьте аннотацию @CrudLog, чтобы записать операцию пользователя в журнале операций системы управления бэкендом в таблице sys_log базы данных.
// BusinessType.INSERT новая операция
// BusinessType.UPDATE обновление операции
// BusinessType.DELETE удаление операции
@CrudLog(title = "Подробное описание",businessType = BusinessType.INSERT) 
5. Установите полномочия безопасности в коде.
@PreAuthorize("hasAuthority('полномочие')") // аннотация Java-метода
sec:authorize="hasAuthority('полномочие')" // объявление thymeleaf
6. Клиент помещает токен в заголовок и отправляет запрос, сервер перехватывает запрос клиента, получает и анализирует токен из заголовка, извлекает userId пользователя и помещает его в карту, а затем может получить идентификатор пользователя через следующий метод.
 Long userId = ApiContext.getUserId();
7. Преобразование списка в древовидную структуру.
 ListToTree treeBuilder = new ListToTreeImpl();
 treeBuilder.toTree(menus);
8. Вызов метода отправки электронной почты Alibaba Cloud.
 SampleEmail.sample(адрес электронной почты, заголовок, содержание);
9. Вызовите метод загрузки файла на сервер Alibaba Cloud oss или minio.
 SampleOSS.upload(поток файлов, настраиваемый путь загрузки);
10. Вызов метода отправки коротких сообщений Alibaba Cloud.
 SampleSms.sendSms(номер мобильного телефона, номер шаблона, подпись); 
11. Экспорт файла Excel.
   // экспорт файла excel
   EasyExcel.write(response.getOutputStream())
              // автоматическое закрытие потока
              .autoCloseStream(Boolean.FALSE)
              // указать тип файла excel
              .excelType(ExcelTypeEnum.XLSX)
              // заголовок
              .head(класс экспорта.class)
              // задать имя рабочего листа
              .sheet(fileName)
              // установить стиль
              .registerWriteHandler(EasyExcelUtil.getStyleStrategy())
              // предоставить данные для экспорта
              .doWrite(datas);
              
   // данные excel преобразуются в системный словарь
   @ExcelProperty(value = {"пол пользователя"}, index = 0, converter = BaseDictDataConverter.class)
   // ключ = ключ словаря
   @DictType(key = ConfigConsts.DICT_KEY_SEX)
12. Компонент словаря.
   layui.config({
        base: '/static/layuiadmin/' // статический путь ресурсов
    }).extend({
      index: 'lib/index' // основной модуль входа
   }).use(["crud"],function(){
    let crud = layui.crud; 
     // получить перечисление
     crud.getDictValue('тип словаря',значение перечисления);
     // радио присвоить значение
     crud.setRadio("id узла","тип словаря","значение по умолчанию");
     // выберите присвоение значения
     crud.setSelect("id узла","тип словаря",'значение по умолчанию');
  })
13. Многокомпонентный компонент раскрывающегося списка.
   crud.initXmSelect("настраиваемый интерфейс выбора","id узла");
14. Компонент загрузки изображения.
    crud.uploadImg("id узла");
15. Компонент страницы руководства.
   Установите событие нажатия кнопки
   $('кнопка ID узла').on('click', function () {
      // интерфейс дерева мастера
      crud.treeWizard("настраиваемый выбор интерфейса",function (result) {
        form.val('атрибут lay-filter формы', {
          присвоить значение id: result.id,
          присвоить значение имени: result.name
        });
      });
   });
``` **Управление должностями**

**Управление меню**

**Интерфейс Swagger**

**Мониторинг Druid**

    *учётная запись:* admin
    *пароль:* admin

**Периодические задачи**

**Словарь**

**Журнал входа**

**Операционный журнал**

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

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

Введение

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

Обновления

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

Участники

все

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

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