mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-10-02 10:57:10 +08:00
完善:完善用户登录 API,优化部分包结构(引入 MyBatis Plus、多数据源、P6Spy、Liquibase 等依赖,详情可见 README 介绍)
This commit is contained in:
@@ -77,7 +77,7 @@ public class LoginController {
|
||||
|
||||
@SaIgnore
|
||||
@Operation(summary = "用户退出", description = "注销用户的当前登录")
|
||||
@Parameter(name = "Authorization", description = "令牌", required = true, example = "Bearer xxxxxxxxx",
|
||||
@Parameter(name = "Authorization", description = "令牌", required = true, example = "Bearer xxxx-xxxx-xxxx-xxxx",
|
||||
in = ParameterIn.HEADER)
|
||||
@PostMapping("/logout")
|
||||
public R logout() {
|
||||
|
@@ -3,6 +3,56 @@ server:
|
||||
# HTTP 端口(默认 8080)
|
||||
port: 8000
|
||||
|
||||
--- ### 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
## 动态数据源配置(可配多主多从:m1、s1...、纯粹多库:mysql、oracle...、混合配置:m1、s1、oracle...)
|
||||
dynamic:
|
||||
# 是否启用 P6Spy(SQL 性能分析组件,默认 false,该插件有性能损耗,不建议生产环境使用)
|
||||
p6spy: true
|
||||
# 设置默认的数据源或者数据源组(默认 master)
|
||||
primary: master
|
||||
# 严格匹配数据源(true 未匹配到指定数据源时抛异常;false 使用默认数据源;默认 false)
|
||||
strict: false
|
||||
datasource:
|
||||
# 主库配置(可配多个,构成多主)
|
||||
master:
|
||||
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# 从库配置(可配多个,构成多从)
|
||||
slave_1:
|
||||
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username:
|
||||
password:
|
||||
lazy: true
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: ${spring.datasource.type}
|
||||
hikari:
|
||||
# 最大连接池数量
|
||||
max-pool-size: 20
|
||||
# 最小空闲线程数量
|
||||
min-idle: 10
|
||||
# 获取连接超时时间
|
||||
connection-timeout: 10000
|
||||
# 校验超时时间
|
||||
validation-timeout: 5000
|
||||
# 空闲连接最大存活时间(默认 10 分钟)
|
||||
idle-timeout: 60000
|
||||
# 此属性控制池中连接的最长生命周期,0 表示无限生命周期(默认 30 分钟)
|
||||
max-lifetime: 900000
|
||||
# 连接测试 query(配置检测连接是否有效)
|
||||
connection-test-query: SELECT 1
|
||||
|
||||
--- ### Liquibase 配置
|
||||
spring.liquibase:
|
||||
# 是否启用
|
||||
enabled: true
|
||||
# 配置文件路径
|
||||
change-log: classpath:/db/changelog/db.changelog-master.yaml
|
||||
|
||||
--- ### Redis 单机配置
|
||||
spring:
|
||||
redis:
|
||||
@@ -23,12 +73,6 @@ spring:
|
||||
security:
|
||||
# 排除路径配置
|
||||
excludes:
|
||||
# 静态资源
|
||||
- /*.html
|
||||
- /**/*.html
|
||||
- /**/*.css
|
||||
- /**/*.js
|
||||
- /webSocket/**
|
||||
# 接口文档相关资源
|
||||
- /favicon.ico
|
||||
- /doc.html
|
||||
|
@@ -3,6 +3,56 @@ server:
|
||||
# HTTP 端口(默认 8080)
|
||||
port: 18000
|
||||
|
||||
--- ### 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
## 动态数据源配置(可配多主多从:m1、s1...、纯粹多库:mysql、oracle...、混合配置:m1、s1、oracle...)
|
||||
dynamic:
|
||||
# 是否启用 P6Spy(SQL 性能分析组件,默认 false,该插件有性能损耗,不建议生产环境使用)
|
||||
p6spy: false
|
||||
# 设置默认的数据源或者数据源组(默认 master)
|
||||
primary: master
|
||||
# 严格匹配数据源(true 未匹配到指定数据源时抛异常;false 使用默认数据源;默认 false)
|
||||
strict: false
|
||||
datasource:
|
||||
# 主库配置(可配多个,构成多主)
|
||||
master:
|
||||
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# 从库配置(可配多个,构成多从)
|
||||
slave_1:
|
||||
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
|
||||
username:
|
||||
password:
|
||||
lazy: true
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: ${spring.datasource.type}
|
||||
hikari:
|
||||
# 最大连接池数量
|
||||
max-pool-size: 20
|
||||
# 最小空闲线程数量
|
||||
min-idle: 10
|
||||
# 获取连接超时时间
|
||||
connection-timeout: 10000
|
||||
# 校验超时时间
|
||||
validation-timeout: 5000
|
||||
# 空闲连接最大存活时间(默认 10 分钟)
|
||||
idle-timeout: 60000
|
||||
# 此属性控制池中连接的最长生命周期,0 表示无限生命周期(默认 30 分钟)
|
||||
max-lifetime: 900000
|
||||
# 连接测试 query(配置检测连接是否有效)
|
||||
connection-test-query: SELECT 1
|
||||
|
||||
--- ### Liquibase 配置
|
||||
spring.liquibase:
|
||||
# 是否启用
|
||||
enabled: true
|
||||
# 配置文件路径
|
||||
change-log: classpath:/db/changelog/db.changelog-master.yaml
|
||||
|
||||
--- ### Redis 单机配置
|
||||
spring:
|
||||
redis:
|
||||
@@ -19,17 +69,6 @@ spring:
|
||||
# 是否开启 SSL
|
||||
ssl: false
|
||||
|
||||
--- ### 安全配置
|
||||
security:
|
||||
# 排除路径配置
|
||||
excludes:
|
||||
# 静态资源
|
||||
- /*.html
|
||||
- /**/*.html
|
||||
- /**/*.css
|
||||
- /**/*.js
|
||||
- /webSocket/**
|
||||
|
||||
--- ### 非对称加密配置(例如:密码加密传输,前端公钥加密,后端私钥解密;在线生成 RSA 密钥对:http://web.chacuo.net/netrsakeypair)
|
||||
rsa:
|
||||
# 私钥
|
||||
|
@@ -79,6 +79,54 @@ sa-token:
|
||||
# JWT秘钥
|
||||
jwt-secret-key: asdasdasifhueuiwyurfewbfjsdafjk
|
||||
|
||||
--- ### 安全配置
|
||||
security:
|
||||
# 排除路径配置
|
||||
excludes:
|
||||
# 静态资源
|
||||
- /*.html
|
||||
- /**/*.html
|
||||
- /**/*.css
|
||||
- /**/*.js
|
||||
- /webSocket/**
|
||||
|
||||
--- ### MyBatis Plus 配置
|
||||
mybatis-plus:
|
||||
# Mapper 接口扫描包配置(该配置为自定义配置,非 MP 配置,不支持多包,如有需要可通过注解配置或提升扫描包层级)
|
||||
# 该配置目前的唯一使用场景为:@MapperScan("${mybatis-plus.mapper-package}")
|
||||
mapper-package: top.charles7c.**.mapper
|
||||
# Mapper XML 文件目录配置
|
||||
mapper-locations: classpath*:/mapper/**/*Mapper.xml
|
||||
# 类型别名扫描包配置
|
||||
type-aliases-package: top.charles7c.**.model
|
||||
check-config-location: true
|
||||
configuration:
|
||||
# 自动驼峰命名规则(camel case)映射
|
||||
map-underscore-to-camel-case: true
|
||||
# MyBatis 自动映射策略
|
||||
# NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射
|
||||
auto-mapping-behavior: PARTIAL
|
||||
# MyBatis 自动映射时未知列或未知属性处理策
|
||||
# NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
|
||||
auto-mapping-unknown-column-behavior: NONE
|
||||
# 日志配置
|
||||
# 默认:org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||
# 更详细(会有性能损耗):org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# 关闭(可单纯使用 p6spy 分析):org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
global-config:
|
||||
banner: true
|
||||
db-config:
|
||||
# 主键类型(默认 assign_id 表示自行赋值)
|
||||
# auto 代表使用数据库自增策略(需要在表中设置好自增约束)
|
||||
id-type: AUTO
|
||||
# 逻辑删除字段
|
||||
logic-delete-field: isDeleted
|
||||
# 逻辑删除全局值(默认 1,表示已删除)
|
||||
logic-delete-value: 1
|
||||
# 逻辑未删除全局值(默认 0,表示未删除)
|
||||
logic-not-delete-value: 0
|
||||
|
||||
--- ### 服务器配置
|
||||
server:
|
||||
servlet:
|
||||
|
@@ -0,0 +1,7 @@
|
||||
databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/v0.0.1/continew-admin_table.sql
|
||||
- include:
|
||||
file: db/changelog/v0.0.1/continew-admin_column.sql
|
||||
- include:
|
||||
file: db/changelog/v0.0.1/continew-admin_data.sql
|
@@ -0,0 +1,2 @@
|
||||
-- liquibase formatted sql
|
||||
|
@@ -0,0 +1,6 @@
|
||||
-- liquibase formatted sql
|
||||
|
||||
-- changeset Charles7c:1
|
||||
-- 初始化默认用户:admin/123456;test/123456
|
||||
INSERT IGNORE INTO `sys_user` VALUES (1, 'admin', '超级管理员', 'f0df7414507bcb57e07e18555821228a', 1, NULL, 'charles7c@126.com', NULL, NULL, 1, NULL, 1, NOW(), 1, NOW());
|
||||
INSERT IGNORE INTO `sys_user` VALUES (2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 0, NULL, NULL, NULL, NULL, 2, NULL, 1, NOW(), 1, NOW());
|
@@ -0,0 +1,25 @@
|
||||
-- liquibase formatted sql
|
||||
|
||||
-- changeset Charles7c:1
|
||||
CREATE TABLE IF NOT EXISTS `sys_user` (
|
||||
`user_id` bigint(20) unsigned AUTO_INCREMENT COMMENT '用户ID',
|
||||
`username` varchar(255) NOT NULL COMMENT '用户名',
|
||||
`nickname` varchar(255) DEFAULT NULL COMMENT '昵称',
|
||||
`password` varchar(255) DEFAULT NULL COMMENT '密码',
|
||||
`gender` tinyint(1) unsigned DEFAULT 0 COMMENT '性别(0未知 1男 2女)',
|
||||
`phone` varchar(255) DEFAULT NULL COMMENT '手机号码',
|
||||
`email` varchar(255) DEFAULT NULL COMMENT '邮箱',
|
||||
`avatar` varchar(255) DEFAULT NULL COMMENT '头像地址',
|
||||
`notes` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`status` tinyint(1) unsigned DEFAULT 1 COMMENT '状态(1启用 2禁用)',
|
||||
`pwd_reset_time` datetime DEFAULT NULL COMMENT '最后一次修改密码的时间',
|
||||
`create_user` bigint(20) unsigned NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||
`update_user` bigint(20) unsigned NOT NULL COMMENT '修改人',
|
||||
`update_time` datetime NOT NULL COMMENT '修改时间',
|
||||
PRIMARY KEY (`user_id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_username`(`username`) USING BTREE,
|
||||
UNIQUE INDEX `uk_email`(`email`) USING BTREE,
|
||||
INDEX `idx_createUser`(`create_user`) USING BTREE,
|
||||
INDEX `idx_updateUser`(`update_user`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
|
30
continew-admin-webapi/src/main/resources/spy.properties
Normal file
30
continew-admin-webapi/src/main/resources/spy.properties
Normal file
@@ -0,0 +1,30 @@
|
||||
############################################################################
|
||||
# P6Spy 配置(SQL 性能分析组件) #
|
||||
############################################################################
|
||||
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
|
||||
# 自定义日志打印
|
||||
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
|
||||
#日志输出到控制台
|
||||
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
|
||||
# 使用日志系统记录 SQL
|
||||
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
|
||||
# 设置 P6Spy Driver 代理
|
||||
deregisterdrivers=true
|
||||
# 取消 JDBC URL 前缀
|
||||
useprefix=true
|
||||
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
|
||||
excludecategories=info,debug,result,commit,resultset
|
||||
# 日期格式
|
||||
dateformat=yyyy-MM-dd HH:mm:ss
|
||||
# SQL语句打印时间格式
|
||||
databaseDialectTimestampFormat=yyyy-MM-dd HH:mm:ss
|
||||
# 实际驱动可多个
|
||||
#driverlist=org.h2.Driver
|
||||
# 是否启用慢 SQL 记录
|
||||
outagedetection=true
|
||||
# 慢 SQL 记录标准 2 秒
|
||||
outagedetectioninterval=2
|
||||
# 是否过滤 Log
|
||||
filter=true
|
||||
# 过滤 Log 时所排除的 SQL 关键字,以逗号分隔
|
||||
exclude=SELECT 1
|
Reference in New Issue
Block a user