項目介紹
Seezoon Stack 以快速開發(fā)為目的,在開發(fā)速度和代碼結(jié)構(gòu)上做出一定取舍,無論如何,你將看到非常地道的 Java 常用開發(fā)框架使用。該項目采用主流開發(fā)框架,無論打包、編譯、部署都按著大公司的標(biāo)準(zhǔn)完成并不斷逐步完善。
技術(shù)棧:
Spring Boot、Spring Session Data Redis、Spring Security、mybatis、Springfox
前端技術(shù)棧
Vue 3 Vite TypeScript Iconify
環(huán)境準(zhǔn)備
- JDK 1.8 (建議11)
- Maven 3
- Node 12
- yarn(安裝完node,可用npm install -g yarn)
- Redis
- Mysql 5.7 (建議8)
快速開始
代碼下載
可以通過 IDEA File->New->Project From Version Control 導(dǎo)入,也可以通過命令下載后導(dǎo)入。
建議fork 后到自己倉庫后再導(dǎo)入,方便后續(xù)同步更新。
git clone https://github.com/734839030/seezoon-stack.git
工程結(jié)構(gòu)
```.└── seezoon-stack parent工程 ├── build 構(gòu)建所需文件 │ ├── assembly 生成產(chǎn)出物結(jié)構(gòu) │ │ ├── bin 項目腳本 │ │ ├── conf 配置目錄 │ │ ├── logs 日志目錄 │ │ └── assembly.xml maven assembly 打包插件描述文件(不打包到產(chǎn)出物) │ ├── build.sh 構(gòu)建腳本 │ ├── eclipse-codestyle.xml P3C代碼格式,可以自行更新 │ ├── maven-settings.xml maven的setting配置(可選) │ └── mybatis-generator-config.xml 原生mybatis-generator 描述文件(可選) ├── db DB腳本目錄 ├── doc 項目文檔及資料維護目錄 ├── seezoon-admin-server 管理端服務(wù) ├── seezoon-admin-web 后臺頁面目前fork上游,代碼庫單獨維護穩(wěn)定后合并 ├── seezoon-dao DAO層,方便管理端和C端引用 ├── seezoon-framework 管理端和C端通用框架層(基礎(chǔ)中間件,參數(shù)驗證,安全控制) ├── seezoon-generator 通用代碼生成器,可以單獨使用也可以供其他組件繼承使用 └── seezoon-user-server C端服務(wù)端TODO```
后臺
- 初始化DB腳本腳本見db/seezoon-stack.sql
- 配置seezoon-admin-server在如下配置文件配置DB和Redis賬號密碼seezoon-admin-server/src/main/resources/application-local.properties
- IDEA中啟動后臺
執(zhí)行如下類中Main方法(如果報依賴錯誤,可以執(zhí)行parent 工程mvn package)
seezoon-admin-server/src/main/java/com/seezoon/admin/AdminMain.java
前臺
- 安裝依賴并啟動cd seezoon-stack/seezoon-admin-web yarn install yarn serve # 訪問地址 http://localhost:3100/
- 本地測試文件服務(wù)器(可選)cd seezoon-admin-web/test/server/upload yarn install yarn start # 管理端上傳文件后,可以直接訪問地址static目錄靜態(tài)文件 http://localhost:3001/static/xxxx
生產(chǎn)環(huán)境部署
線上目錄結(jié)構(gòu),
/data/│── cert├── seezoon-admin-server # 后臺產(chǎn)出物│ ├── bin│ ├── conf│ ├── logs│ └── work├── seezoon-admin-web # 前端產(chǎn)出物│ ├── assets│ └── resource└── upload-server 文件上傳目錄,默認(rèn)使用磁盤文件,使用OSS則不需要.
手工部署-后臺
線上環(huán)境安裝Java 1.8 ,推薦11。
采用maven-assembly-plugin生成構(gòu)建物,可以直接生成生產(chǎn)部署的目錄結(jié)構(gòu),方便DevOps 集成.
cd seezoon-admin-servermvn clean package
產(chǎn)出物目錄
seezoon-admin-server/target/seezoon-admin-server
只需要維護產(chǎn)出物conf 目錄的application.properties 即可,然后就可以發(fā)布了。
配置文件與環(huán)境分離,maven-jar-plugin 打包產(chǎn)出物jar會排出resources目錄如下文件:
application-local.propertieslogback-spring.xml
如果不介意各個環(huán)境配置都在工程中那就很方便,使用spring boot 提供的–spring.profiles.active,在啟動命令中選擇配置文件。
手工部署-前臺
cd seezoon-admin-webyarn build
產(chǎn)出物
seezoon-admin-web/dist 中文件發(fā)布到線上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/; } # 文件服務(wù) location ^~ /file/ { access_log off; alias /data/upload-server/; } # 靜態(tài)資源 location / { access_log off; root /data/seezoon-admin-web/; index index.html index.htm; }}
可選靜態(tài)資源壓縮配置,放在nginx.conf http 節(jié)點下。
# 打開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].";
后臺截圖:
想要源碼,記得關(guān)注 轉(zhuǎn)發(fā) 私信
私信回復(fù)【java低代碼快速開發(fā)】
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。