Springboot2-vue3
Общий фоновый шаблон на основе Springboot2 и vue3, без избыточных функций, только управление разрешениями и общие функции . Проект разделения фронтенда и бэкенда, код прошел 90% сканирование по правилам кодирования Alibaba и поиск ошибок
Адрес новой версии
Руководство по началу работы
Следующее руководство поможет вам установить и запустить проект на локальном компьютере для разработки и тестирования. Информацию о том, как развернуть этот проект в онлайн-среде, см. в разделе «Развертывание».
Требования и этапы установки
- Установите и настройте среду Java, JDK1.8.
- Установите mysql 8 , создайте базу данных (utf8mb4) и импортируйте sql (в каталог doc).
- Чтобы установить Redis , просто скачайте и установите его.
- Для инструментов разработки необходимо установить плагин Lombok (для инструментов разработки рекомендуется использовать IDEA).
- --- Операция серверной части (если есть проблема, обычно это ошибка в конфигурации источника данных в файле конфигурации yml)
- Установите и настройте среду узла
- Установите vue-cli3 , войдите в каталог vue и выполните
npm install
- --- Запустите
npm run serve
во внешнем интерфейсе ( WebStorm или IDEA могут напрямую щелкнуть зеленый треугольник слева от строки 6 в файле package.json ).
Демо-адрес
- Онлайн-демонстрационный адрес
- Имя пользователя: суперадмин
- Пароль:111111
- Совет: несколько пользователей, вошедших в систему одновременно, могут быть исключены.
- Совет: В демонстрационной среде запрещены операции добавления, удаления и изменения. Просто игнорируйте эту ошибку.
- Совет: если есть другие исключения, принудительно обновите страницу (это может быть проблема с кешем).
- Документация интерфейса
- чванство-бутстрап
- Советы. В запросе появится код 404. Пожалуйста, вручную добавьте /github перед запросом.
развертывать
- Запустите команду
mvn clean package
в каталоге Springboot для упаковки. После упаковки сгенерированный файл находится в каталоге /target/build.- В каталоге config хранятся файлы конфигурации.
- Каталог lib — это пакет jar, от которого зависит maven.
- статический каталог хранит статические файлы
- Файл jar — это сгенерированный пакет jar (если зависимость pom останется неизменной в будущем, вы можете заменить только пакет jar)
- Запустите команду
npm run build
в каталоге vue для упаковки. После упаковки сгенерированный файл находится в каталоге /dist.- Конфигурация упаковки находится в файле .env и файле vue.config.js.
- Серверу развертывания необходимо настроить среду JDK1.8 , mysql 8 и redis.
- Пакет jar запускает
nohup java -jar springboot.jar &
может работать в фоновом режиме и выводить журнал в файл nohup.out в текущем каталоге. - Рекомендуется настроить nginx для сервера развертывания. Vue упаковывается и помещается в nginx. Если он не настроен, его можно разместить в статическом каталоге пакета jar .
Распространенные ошибки
-
java.lang.RuntimeException: Cannot resolve classpath entry: E:maven-repositorymysqlmysql-connector-java8.0.15mysql-connector-java-8.0.15.jar
- Ошибка: создать класс сущности на основе базы данных.
- Решение. Измените путь к пакету jar в строке 6 файла resources/config/generator-config.xml на свой собственный путь к пакету jar.
-
npm install
- Ошибка: ошибка зависимости установки vue, обычно node-sass
- Решение: измените образ Taobao или
npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist --sass-binary-site=http://npm.taobao.org/mirrors/node-sass
-
/login ------请求失败-----error: Error: Cannot find module './q/Index'
- Ошибка: после создания нового меню в фоновом режиме (у меню нет подчиненных) и наличия разрешения на добавление меню эта ошибка возникает при повторном входе в систему.
- Решение. Добавьте каталог меню и файл Index.vue в путь /src/views/index/ в проекте vue.
задняя часть:
Springboot, Mybatis, Redis
- Введение
- Проект создан на основе шаблона Springboot.
- Базовая конфигурация
- В файле .yml можно настроить соответствующую информацию.
- Каталог конфигурации содержит общие конфигурации модулей.
- Фильтр настроен с междоменной фильтрацией, фильтрацией IP , фильтрацией параметров и т. д.
- Запросы на фильтрацию параметров автоматически удаляют начальные и конечные пробелы , используя Jsoup для фильтрации HTML-тегов (уровень фильтрации можно настроить).
- Управление разрешениями
- Интерфейс с аннотацией
@AdminAuthToken
, заголовок запроса должен иметь токен для доступа. - Сотрудничайте с внешней страницей vue для динамического отображения маршрутизации и скрытия кнопки отображения: кнопка сохраняется в
$store.state.role['buttons']
(внешний интерфейс). - С учетом разрешений на уровне интерфейса соответствующий API , соответствующий меню или кнопке в управлении функциями, должен быть улучшен, в противном случае он будет разрешен по умолчанию после существования токена .
- Фабрика упаковки использует CURD и просто наследует BaseService.
-
baseInsert()
и baseUpdate()
автоматически фильтруют поля с нулевыми значениями. - Отфильтруйте параметры
baseUpdate()
или создайте новый класс сущности для операции присваивания.
- Автоматически генерировать классы сущностей на основе базы данных
- Запустите метод org.mybatis.generator.plugin.MyBatisTest.main().
- Конкретные ресурсы конфигурации/config/generator-config.xml
- Журналы хранятся ежедневно, а конкретная конфигурация находится в resources/config/logback-spring.xml.
- Автоматически записывать журнал пользователя администратора , аннотацию
@SystemLog
можно разместить на контроллере.
внешний интерфейс:
вид:
Введение
- Проект создан на основе vue cli3
- Пользовательский интерфейс: элемент-ui
- Сетевой запрос: аксиос
- Глобальный метод вызова
this.$axios({ url: '', data: {}, success(data) {} });
- URL: требуется только адрес после имени домена
- успех: обратный вызов должен обрабатывать только случай , когда код равен 200
- Глобальные переменные и методы находятся в каталоге /src/utils.
- Переопределить стиль element-ui в файле /src/assets/sass/element-variables.scss.
- Представляем библиотеку шрифтов iconfont
- Просто перезапишите файлы в каталоге /src/assets/font/iconfont.
- Цитата
<i class="iconfont iconfont-address"></i>
- Большинство проектов имеют комментарии
Базовая конфигурация
- Сотрудничайте с серверной частью для реализации динамической маршрутизации: заполните путь в форме управления функциями, корневой путь по умолчанию — /src/views/index/
- Файл .env.production/development и vue.config.js — это файлы конфигурации.
Часто используемые инкапсулированные компоненты ( подробные комментарии см. в /src/views/index/system/sysUser/ ).
- диалог: всплывающее окно
- деталь: отображать данные в виде заголовка + контента
- form: отправка формы,
@submit
должен обрабатывать ситуацию только после проверки формы - индекс: обычное всплывающее окно
- стол: стол
- Пример возврата, принимаемый в форме:
{"list":[],"pageNum":1,"pageSize":10}
- Запрос данных таблицы
tableDataRequest: { url: '', data: {} }
- URL: адрес запроса
- данные: дополнительные параметры, используемые при поиске по верхам
- Отображение таблицы
tableColumns: [ {prop: 'username', label: '用户名',formatter(){ return ''; }} ]
принимает массив --- обратитесь к таблицеlayui;- форматтер: сложное отображение, может возвращать dom
Благодарности
Во-первых, спасибо Springboot , vue , element-ui и другим отличным проектам с открытым исходным кодом. Во-вторых, этот проект ссылается на множество онлайн-примеров. Если вы видите похожий код, то ответ только один.