项目介绍
基于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
页面预览
项目拆除了业务相关的部分,仅保留了系统管理相关内容,代码更简洁,能够更方便的进行二次开发。
本地开发
- 环境要求 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
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