Seezoon Stack은 빠른 개발을 목표로 하며 개발 속도와 코드 구조에서 특정 절충안을 사용합니다. 어떤 경우에도 일반적인 Java 개발 프레임워크의 매우 실제적인 사용을 볼 수 있습니다. 본 프로젝트는 주류 개발 프레임워크를 채택하고 패키징, 편집, 배포가 모두 대기업 표준에 따라 완료되고 지속적, 점진적으로 개선됩니다.
자세한 문서 및 데모 주소: https://doc.stack.seezoon.com
계정: 관리자
비밀번호: 123456 현재 Alibaba Cloud 서버가 만료되어 문서에 액세스할 수 있지만 시스템에 일시적으로 액세스할 수 없습니다.
일부 렌더링:
Seezoon Stack은 최첨단 프런트엔드 및 백엔드 기술 스택을 사용하여 완성됩니다.
주요 배경 프레임워크:
프레임 이름 | 프레임 주소 | 설명하다 |
---|---|---|
스프링 부트 | https://spring.io/projects/spring-boot | 자동 조립 |
스프링 세션 데이터 Redis | https://spring.io/projects/spring-session-data-redis | 로그인 상태 관리 |
스프링 시큐리티 | https://spring.io/projects/spring-security | 로그인 및 권한 제어 |
마이바티스 | https://mybatis.org/mybatis-3/zh/index.html | 지속성 레이어 |
스프링폭스 | https://github.com/springfox/springfox | openAPI 3 문서 |
X-Trace-Id
추가한 후 MDC
통해 로그에 스레드 ID를 매장합니다.우선순위가 낮은 기능(TODO):
주요 프런트엔드 프레임워크:
프레임 이름 | 프레임 주소 | 설명하다 |
---|---|---|
뷰 3 | https://v3.cn.vuejs.org/guide/introduction.html | 양방향 바인딩 |
비테 | https://cn.vitejs.dev/ | 빌드 도구 |
개미 디자인 Vue 2 | https://2x.antdv.com/comComponents/overview-cn/ | 구성 요소 |
타입스크립트 4 | https://www.typescriptlang.org/zh/ | 자바스크립트 상위 집합 |
WindiCss | https://windicss.org/guide/ | CSS 도우미 클래스 |
아이콘화하다 | https://iconify.design/ | 아이콘 라이브러리 |
프런트 엔드 프레임워크는 Vue vben admin 2.0을 포크하며 업스트림 기능은 정기적으로 병합됩니다. 특정 구성 요소에 대해서는 Vben admin 설명서를 참조하세요. 또한 이 프로젝트에 도움을 준 Vben 관리자에게도 감사의 말씀을 전하고 싶습니다.
프론트엔드는 학습 비용을 줄이기 위해 주로 Ant Design Vue 2를 주요 구성 요소 라이브러리로 사용하며, 주요 프레임워크는 TypeScript이고 비즈니스 기능은 JavaScript로 작성되므로 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
```
DB 스크립트 초기화
스크립트는 db/seezoon-stack.sql
참조하세요.
seezoon-admin-server 구성
다음 구성 파일에 DB 및 Redis 계정과 비밀번호를 구성합니다.
seezoon-admin-server/src/main/resources/application-local.properties
IDEA에서 백그라운드 시작
다음 클래스의 Main 메소드를 실행합니다. (종속성 오류가 보고되면 상위 프로젝트 mvn 패키지를 실행할 수 있습니다.)
seezoon-admin-server/src/main/java/com/seezoon/admin/AdminMain.java
종속성 설치 및 시작
cd seezoon-stack/seezoon-admin-web
yarn install
yarn serve
# 访问地址
http://localhost:3100/
로컬 테스트 파일 서버(선택 사항)
cd seezoon-admin-web/test/server/upload
yarn install
yarn start
# 管理端上传文件后,可以直接访问地址static目录静态文件
http://localhost:3001/static/xxxx
온라인 디렉토리 구조,
/data/
│── cert
├── seezoon-admin-server # 后台产出物
│ ├── bin
│ ├── conf
│ ├── logs
│ └── work
├── seezoon-admin-web # 前端产出物
│ ├── assets
│ └── resource
└── upload-server 文件上传目录,默认使用磁盘文件,使用OSS则不需要.
온라인 환경에서는 Java 1.8+를 설치하며 11을 권장합니다.
maven-assemble-plugin을 사용하여 구성을 생성하면 프로덕션 배포를 위한 디렉터리 구조를 직접 생성할 수 있으므로 DevOps 통합이 용이해집니다.
cd seezoon-admin-server
mvn clean package
출력 카탈로그
seezoon-admin-server/target/seezoon-admin-server
출력 conf
디렉터리에서 application.properties
유지 관리하면 이를 게시할 수 있습니다.
구성 파일은 환경에서 분리됩니다.
maven-jar-plugin
패키지 출력jar
resources
디렉터리에 다음 파일을 배출합니다.
application-local.properties
logback-spring.xml
모든 환경 구성이 프로젝트에 있다는 것이 마음에 들지 않으면 spring boot에서 제공하는
--spring.profiles.active
사용하고 시작 명령에서 구성 파일을 선택하는 것이 매우 편리합니다.
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 效果更佳
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].";
우리와 함께 하시길 진심으로 환영합니다! 문제를 제기하거나 Pull Request를 제출하세요.
풀 요청:
git checkout -b feat/xxxx
git commit -m 'feat(function): add xxxxx'
git push origin feat/xxxx
pull request
제출 참고사양(Angular)
- `feat` 增加新功能
- `fix` 修复问题/BUG
- `style` 代码风格相关无影响运行结果的
- `perf` 优化/性能提升
- `refactor` 重构
- `revert` 撤销修改
- `test` 测试相关
- `docs` 文档/注释
- `chore` 依赖更新/脚手架配置修改等
- `workflow` 工作流改进
- `ci` 持续集成
- `types` 类型定义文件更改
- `wip` 开发中