<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- Spring Boot版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.qsdx</groupId>
<artifactId>admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>java-admin</name>
<description>java-admin</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- springboot配置注解处理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--日志-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.11</version>
</dependency>
<!-- mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- Sa-Token 权限认证,在线文档:https://sa-token.cc -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
<version>1.36.0</version>
</dependency>
<!-- Sa-Token 整合 Redis (使用 jackson 序列化方式) -->
<!-- <dependency>-->
<!-- <groupId>cn.dev33</groupId>-->
<!-- <artifactId>sa-token-redis-jackson</artifactId>-->
<!-- <version>1.36.0</version>-->
<!-- </dependency>-->
<!-- Sa-Token 整合 jwt -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-jwt</artifactId>
<version>1.36.0</version>
</dependency>
<!--自动进行对象之间的字段映射-->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.1.1</version>
</dependency>
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
<!--Hutool 工具生成图形验证码-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-captcha</artifactId>
<version>5.8.18</version>
</dependency>
<!--Hutool 解析excel-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-poi</artifactId>
<version>5.8.18</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
#设置端口号
server:
port: 9999
spring:
#指定环境
profiles:
active: dev
#JSON日期格式化
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: Asia/Shanghai
#日期格式化
mvc:
format:
date: yyyy-MM-dd
date-time: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
#配置单个文件最大上传大小
max-file-size: 10MB
#配置单个请求最大上传大小(一次请求可以上传多个文件)
max-request-size: 100MB
#静态资源绝对路径
project:
directory: ${user.dir}\src\main\resources
#加载映射文件
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.qsdx.admin.pojo.entity
configuration:
# 开启驼峰命名映射
map-underscore-to-camel-case: false
# 将日志输出到控制台
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 设置MyBatis包的日志级别为debug
logging:
level:
com.qsdx.entity: debug
pattern:
dateformat: yyyy-MM-dd HH:mm:ss.SSS
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
sa-token:
# token 名称(同时也是 cookie 名称)
token-name: satoken
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
timeout: 2592000
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
active-timeout: -1
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
is-share: true
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
token-style: uuid
# 是否输出操作日志
is-log: true
# jwt秘钥
jwt-secret-key: pjmsjkasifhueuiwyurfewbfjppyvms
application-dev.yml(本地环境)
spring:
#mysql配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: 账号
password: 密码
# Redis相关配置
data:
redis:
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码(默认为空)
# password:
# Redis数据库索引(默认为0)
database: 1
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池最大连接数
max-active: 200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 连接池中的最大空闲连接
max-idle: 10
# 连接池中的最小空闲连接
min-idle: 0
application-prod.yml(正式环境)
同上,自己添加
基本配置,指定Mapper接口的包路径
@MapperScan("com.yourpackage.mapper") // 指定Mapper接口的包路径
集成Sa-Token配置
@SpringBootApplication
@MapperScan("com.yourpackage.mapper") // 指定Mapper接口的包路径
public class JavaAdminApplication {
public static void main(String[] args) throws JsonProcessingException {
SpringApplication.run(JavaAdminApplication.class, args);
System.out.println("启动成功,Sa-Token 配置如下:" + SaManager.getConfig());
}
}
在启动类下新建目录
src
|-- main
|-- java
|-- com
|-- yourpackage
|-- YourApplication.java // 启动类,包含 main 方法
|
|-- config // 配置类
| |-- AppConfig.java // 通用配置
|
|-- controller // 控制器层,处理 HTTP 请求
| |-- YourController.java // 你的控制器类
|
|-- exception // 异常处理
| |-- YourException.java // 你的自定义异常类
|
|-- mapper // MyBatis Mapper 接口
| |-- YourMapper.java // 你的 MyBatis Mapper 接口
|
|-- pojo // POJO 类
| |-- dto // 数据传输对象
| | |-- YourDTO.java // 你的数据传输对象
| |
| |-- entity // 实体类
| | |-- YourEntity.java // 你的实体类
| |
| |-- vo // 视图对象
| |-- YourVO.java // 你的视图对象
|
|-- security // 安全配置
| |-- SecurityConfig.java // Spring Security 配置
|
|-- service // 业务逻辑层
| |-- YourService.java // 你的业务逻辑接口
| |-- impl // 业务逻辑实现类
| |-- YourServiceImpl.java // 你的业务逻辑实现类
|
|-- utils // 工具类
|-- YourUtils.java // 你的工具类
src
|-- main
|-- resources
|-- application.yml // Spring Boot 应用配置文件
|
|-- application-dev.yml // Spring Boot 应用配置文件本地环境(可选)
|
|-- application-prod.yml // Spring Boot 应用配置文件正式环境(可选)
|
|-- static // 静态资源文件夹(如 CSS、JS 文件等)
|
|-- templates // 模板文件夹(如 Thymeleaf 模板等,可选)
|
|-- mapper // MyBatis Mapper XML 文件夹
| |-- YourMapper.xml // 你的 MyBatis Mapper XML 文件
|
|-- sql // 存放 SQL 脚本文件夹
| |-- schema.sql // 数据库结构定义脚本
| |-- data.sql // 数据初始化脚本