Краткое введение
Seezoon Stack разработан с целью быстрой разработки и представляет собой набор инструментов для создания приложений на Java. Проект использует основные фреймворки для разработки, обеспечивая соответствие стандартам крупных компаний в области упаковки, компиляции и развёртывания.
Онлайн-демонстрация
Подробная документация и демонстрация доступны по адресу: https://doc.stack.seezoon.com.
Для доступа к системе необходимо использовать следующие учётные данные:
В настоящее время доступ к серверу Alibaba Cloud истёк, и система временно недоступна.
Некоторые эффекты представлены на следующих изображениях:
Выбор технологий
Seezoon Stack использует передовые технологии для разработки фронтенда и бэкенда.
Основные фреймворки бэкенда включают:
Название фреймворка | Адрес фреймворка | Описание |
---|---|---|
Spring Boot | https://spring.io/projects/spring-boot | Автоматическое конфигурирование |
Spring Session Data Redis | https://spring.io/projects/spring-session-data-redis | Управление состоянием входа |
Spring Security | https://spring.io/projects/spring-security | Вход и контроль доступа |
Mybatis | https://mybatis.org/mybatis-3/zh/index.html | Уровень сохраняемости данных |
Springfox | https://github.com/springfox/springfox | OpenAPI 3 документация |
Характеристики
Функции с низким приоритетом (TODO):
Основные фронтенд-фреймворки включают:
Название фреймворка | Адрес фреймворка | Описание |
---|---|---|
Vue 3 | https://v3.cn.vuejs.org/guide/introduction.html | Двусторонняя привязка данных |
Vite | https://cn.vitejs.dev/ | Инструмент сборки |
Ant Design Vue 2 | https://2x.antdv.com/components/overview-cn/ | Компоненты |
TypeScript 4 | https://www.typescriptlang.org/zh/ | Расширение JavaScript |
Windi Css | https://windicss.org/guide/ | CSS-помощник |
Iconify | https://iconify.design/ | Библиотека иконок |
Фронтенд основан на Vue vben admin 2.0, который регулярно объединяется с новыми функциями из основной ветки. Для компонентов рекомендуется использовать Ant Design Vue 2, что снижает сложность обучения и обеспечивает основную структуру на TypeScript. Бизнес-логика написана на JavaScript, что делает код более компактным и быстрым для разработки.
Подготовка среды
Необходимые инструменты и библиотеки:
npm install -g yarn
);Быстрый старт
Код можно загрузить через IDEA, используя File->New->Project From Version Control или через командную строку. Рекомендуется создать собственный репозиторий и затем импортировать проект туда.
git clone https://github.com/734839030/seezoon-stack.git
Структура проекта:
```
.
└── seezoon-stack parent工程
├── build 构建所需文件
│ ├── assembly 生成产出物结构
│ │ ├── bin 项目脚本
│ │ ├── conf 配置目录
│ │ ├── logs 日志目录
│ │ └── assembly.xml maven assembly 打包插件描述文件(不打包到产出物)
│ ├── build.sh 构建脚本
│ ├── eclipse-codestyle.xml P3C代码格式,可以自行更新
│ ├── maven-settings.xml maven的setting配置(可选)
│ └── mybatis-generator-config.xml 原生mybatis-generator 描述文件(可选)
├── db DB脚本目录
├── doc 项目文档及资料维护目录
├── seezoon-admin-server 管理端服务
├── seezoon-admin-web 后台页面目前fork上游,代码库单独维护稳定后合并
├── seezoon-dao DAO层,方便管理端和C端引用
├── seezoon-framework 管理端和C端通用框架层(基础中间件,参数验证,安全控制)
├── seezoon-generator 通用代码生成器,可以单独使用也可以供其他组件继承使用
└── seezoon-user-server C端服务端TODO
```
``` **seezoon-stack/seezoon-admin-web**
*yarn install*
*yarn serve*
# **Доступ к адресу**
http://localhost:3100/
Локальный тестовый сервер файлов (необязательно)
cd seezoon-admin-web/test/server/upload yarn install yarn start
## **Развёртывание в рабочей среде**
Структура каталогов в рабочей среде:
/data/ │── cert ├── seezoon-admin-server # Фоновый вывод │ ├── bin │ ├── conf │ ├── logs │ └── work ├── seezoon-admin-web # Фронтенд вывод │ ├── assets │ └── resource └── upload-server Каталог сервера загрузки файлов, по умолчанию используется дисковый файл, при использовании OSS не требуется.
### **😇 Ручное развёртывание — фоновый**
> В производственной среде необходимо установить Java 1.8 +, рекомендуется 11.
Используйте [maven-assembly-plugin](http://maven.apache.org/plugins/maven-assembly-plugin/), чтобы создать структуру каталогов для развёртывания, что удобно для интеграции DevOps.
cd seezoon-admin-server mvn clean package
**Вывод продукта**
`seezoon-admin-server/target/seezoon-admin-server`
**Необходимо поддерживать только каталог conf приложения.properties**, после чего его можно опубликовать.
> Файлы конфигурации и среды разделены, `maven-jar-plugin` упаковывает выходные данные jar, которые будут выводить следующие файлы из каталога ресурсов:
application-local.properties logback-spring.xml
> Если вы не против того, чтобы все конфигурации находились в проекте, вы можете использовать spring boot `--spring.profiles.active`, чтобы выбрать файл конфигурации при запуске команды.
<img src="doc/pictures/image-20210423121842460.png" alt="image-20210423121842460">
### **😇 Ручное развертывание — фронтенд**
cd seezoon-admin-web yarn build
**Выход продукта**
Файлы в `seezoon-admin-web/dist` можно публиковать непосредственно в рабочем каталоге nginx. Приведённая ниже конфигурация nginx предназначена только для справки.
upstream seezoon-admin-server { server 127.0.0.1:8080 max_fails=3 fail_timeout=10s; }
server { listen 80; server_name stack.seezoon.com; rewrite ^(.*)$ https://$host$1 permanent; }
server { listen 443; server_name stack.seezoon.com; ssl on; ssl_certificate /data/cert/stack.seezoon.com.pem; ssl_certificate_key /data/cert/stack.seezoon.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
# api
location ^~ /api/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://seezoon-admin-server/;
}
# Файл сервис
location ^~ /file/ {
access_log off;
alias /data/upload-server/;
}
# Статический ресурс
location / {
access_log off;
root /data/seezoon-admin-web/;
index index.html index.htm;
}
}
> Можно настроить сжатие статических ресурсов, поместите конфигурацию в узел nginx.conf http.
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 6; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary off; gzip_disable "MSIE [1-6].";
## Как внести свой вклад
Мы будем рады вашему участию! [Создайте новую проблему](https://github.com/734839030/seezoon-stack/issues/new) или отправьте запрос на вытягивание.
**Запрос на вытягивание:**
1. Fork код! (синхронизация с вышестоящим: git pull https://github.com/734839030/seezoon-stack.git master)
2. Создайте свою собственную ветку: `git checkout -b feat/xxxx`
3. Зафиксируйте свои изменения: `git commit -m 'feat(function): add xxxxx'`
4. Отправьте свою ветку: `git push origin feat/xxxx`
5. Отправить запрос на вытягивание
## Git Руководство по внесению вклада
См. руководство ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
- `feat` Добавить новую функцию
- `fix` Исправить проблему/ошибку
- `style` Код, связанный со стилем, не влияет на результаты выполнения
- `perf` Оптимизация/улучшение производительности
- `refactor` Рефакторинг
- `revert` Отменить изменение
- `test` Связанные с тестированием
- `docs` Документация/комментарии
- `chore` Обновление зависимостей/конфигурация сборки и т. д.
- `workflow` Улучшение рабочего процесса
- `ci` Непрерывная интеграция
- `types` Изменение файла определения типа
- `wip` Разработка в процессе
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )