1. 程式人生 > 實用技巧 >基於Spring、SpringBoot、MyBatis、Shiro框架,開發的一套後臺腳手架框架

基於Spring、SpringBoot、MyBatis、Shiro框架,開發的一套後臺腳手架框架

專案介紹

基於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

頁面預覽

專案拆除了業務相關的部分,僅保留了系統管理相關內容,程式碼更簡潔,能夠更方便的進行二次開發。


本地開發

  1. 環境要求 JDK1.8、MySQL5.5+
  2. 下載專案,通過IDEA或者Eclipse匯入專案
  3. 通過資料庫指令碼匯入資料庫資料庫指令碼(train_trade.sql)
  4. 編譯

伺服器打包部署

  1. 通過maven進行打包
  2. 進入jar包目錄執行自動打包程式自動打包程式(trade-training-api-admin.sh)
  3. 部署前端檔案(省略)

檔案說明

  1. 專案資料庫設計檔案資料庫設計文件
  2. 程式碼生成mybatis-generator-gui
  3. 配置檔案

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