基於Spring、SpringBoot、MyBatis、Shiro框架,開發的一套後臺腳手架框架
阿新 • • 發佈:2020-08-11
專案介紹
基於Spring、SpringBoot、MyBatis、Shiro框架,開發的一套後臺腳手架框架,包括使用者管理、角色管理、許可權系統等功能,SpringBoot快速開發平臺,完善的 XSS 防範及指令碼過濾,徹底杜絕 XSS 攻擊,採用前後端分離技術實現,後端採用RESTFul風格介面形式並使用服務認證技術給前端(前臺)提供資料,便於改版以及後期接入APP或者微信小程式。
Github地址:https://github.com/herry-zhang/spring-boot-api-project
專案說明
1. 後端技術選型:
核心框架 SpringBoot
檢視框架(後端) SpringMVC版本控制 maven
持久層框架 MyBatis
分頁外掛 PageHelper
實體類註解外掛 Lombok
安全框架 Shiro
服務認證(前端介面) JWT
OSS物件儲存 Ali-OSS
資料庫連線池 Druid
文件支援 Swagger
熱部署外掛 JRebel
程式碼生成 mybatis-generator-gui
2. 前端技術選型:
前端框架 React
UI框架 Ant Design
備註:由於作者開發專案的時候,使用Ant Design版本較舊,故沒有上傳前端程式碼,框架使用介紹地址:https://ant.design/index-cn
- 1
頁面預覽
專案拆除了業務相關的部分,僅保留了系統管理相關內容,程式碼更簡潔,能夠更方便的進行二次開發。
本地開發
- 環境要求 JDK1.8、MySQL5.5+
- 下載專案,通過IDEA或者Eclipse匯入專案
- 通過資料庫指令碼匯入資料庫資料庫指令碼(train_trade.sql)
- 編譯
伺服器打包部署
- 通過maven進行打包
- 進入jar包目錄執行自動打包程式自動打包程式(trade-training-api-admin.sh)
- 部署前端檔案(省略)
檔案說明
- 專案資料庫設計檔案資料庫設計文件
- 程式碼生成mybatis-generator-gui
- 配置檔案
application.yml
# Tomcat
server:
tomcat:
uri-encoding: UTF-8
max-threads: 1000
min-spare-threads: 30
# tomcat埠號
port: 8080
connection-timeout: 5000ms
servlet:
context-path: /api-admin
spring:
application:
name: TradeTrainingAdmin
# 環境 dev|test|prod
profiles:
active: prod
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
# jackson時間格式化
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
mvc:
throw-exception-if-no-handler-found: true
static-path-pattern: /static/**
druid:
pool:
initialSize: 10
maxActive: 100
minIdle: 10
# mybatis
mybatis:
mapper-locations: classpath:/mapper/*/*Mapper.xml
type-aliases-package: com.trade.training.model
global-config:
# 主鍵型別 0:"資料庫ID自增", 1:"使用者輸入ID",2:"全域性唯一ID (數字型別唯一ID)", 3:"全域性唯一ID UUID";
id-type: 0
# 欄位策略 0:"忽略判斷",1:"非 NULL 判斷"),2:"非空判斷"
field-strategy: 2
# 駝峰下劃線轉換
db-column-underline: true
# 重新整理mapper 除錯神器
refresh-mapper: true
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
# pagehelper分頁外掛配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
application-dev.yml
# 資料庫連線
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/train_trade?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8
username: root
password: root
# 日誌檔案
logging:
config: classpath:logback-spring.xml
level:
com.trade.training: debug
# swagger
swagger:
enable: true