# spring-thmyleaf **Repository Path**: java-lesson/spring-thmyleaf ## Basic Information - **Project Name**: spring-thmyleaf - **Description**: spring-boot + thmyleaf + security - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 用户管理系统 ## 项目简介 这是一个基于 Spring Boot 4.x 构建的用户管理系统,集成了 Spring Security、MyBatis、Thymeleaf 等技术栈,实现了完整的用户认证、授权和管理功能。系统采用前后端分离的架构设计,支持管理员和普通用户的角色区分,提供用户注册、登录、权限控制以及后台管理等功能。 ## 技术栈 - **后端框架**: Spring Boot 4.0.6 - **安全框架**: Spring Security 7.x - **持久层**: MyBatis 4.0.1 - **模板引擎**: Thymeleaf - **数据库**: H2 内存数据库(开发环境) - **前端框架**: Bootstrap 5.3.0 - **构建工具**: Maven - **Java 版本**: Java 26 ## 主要功能 ### 1. 用户认证与授权 - 用户注册与登录 - 基于角色的访问控制(RBAC) - CSRF 防护 - 密码加密存储(BCrypt) ### 2. 用户管理 - 用户信息查看 - 用户编辑与删除 - 密码修改 - 最后登录时间记录 ### 3. 页面展示 - 响应式登录/注册页面 - 后台管理界面 - 用户列表展示 - 导航栏组件 ## 项目结构 ``` src/ ├── main/java/org/example/springboot/ │ ├── config/ # 配置类 │ │ └── SecurityConfig.java # Spring Security 配置 │ ├── controller/ # 控制器层 │ │ ├── api/ # API 控制器 │ │ │ ├── AuthController.java # 认证相关接口 │ │ │ └── SystemUserController.java # 用户管理接口 │ │ └── page/ # 页面控制器 │ │ └── PageController.java # 页面路由 │ ├── dto/ # 数据传输对象 │ │ ├── ApiResponse.java # 统一响应格式 │ │ ├── LoginRequest.java # 登录请求 │ │ ├── PasswordChangeRequest.java # 密码修改请求 │ │ └── RegisterRequest.java # 注册请求 │ ├── entity/ # 实体类 │ │ └── SystemUser.java # 用户实体 │ ├── mapper/ # 数据访问层 │ │ └── SystemUserMapper.java # 用户 Mapper 接口 │ ├── service/ # 业务逻辑层 │ │ ├── impl/ # 服务实现 │ │ │ ├── SecurityUserDetailsService.java # 安全用户详情服务 │ │ │ └── SystemUserServiceImpl.java # 用户服务实现 │ │ └── SystemUserService.java # 用户服务接口 │ └── Application.java # 应用启动类 ├── main/resources/ │ ├── mapper/ # MyBatis XML 映射文件 │ │ └── SystemUserMapper.xml │ ├── static/ # 静态资源 │ │ ├── css/ # 样式文件 │ │ │ ├── auth.css # 认证页面样式 │ │ │ ├── common.css # 通用样式 │ │ │ └── users.css # 用户管理页面样式 │ │ └── js/ # JavaScript 文件 │ │ └── http.js # HTTP 请求工具 │ ├── templates/ # Thymeleaf 模板 │ │ ├── admin/ # 管理员页面 │ │ │ └── users.html # 用户管理页面 │ │ ├── layout/ # 布局组件 │ │ │ └── navbar.html # 导航栏组件 │ │ ├── login.html # 登录页面 │ │ └── register.html # 注册页面 │ ├── application.yaml # 主配置文件 │ ├── application-dev.yaml # 开发环境配置 │ ├── application-prod.yaml # 生产环境配置 │ ├── application-test.yaml # 测试环境配置 │ ├── data.sql # 初始化数据 │ └── schema.sql # 数据库表结构 └── test/ # 测试代码 ``` ## 数据库设计 ### sys_user 表结构 | 字段名 | 类型 | 说明 | |-----------------|--------------|----------------| | id | BIGINT | 主键,自增 | | username | VARCHAR(50) | 用户名,唯一 | | password | VARCHAR(255) | 密码(BCrypt 加密) | | email | VARCHAR(100) | 邮箱 | | phone | VARCHAR(20) | 手机号 | | avatar | VARCHAR(255) | 头像 URL | | nickname | VARCHAR(50) | 昵称 | | role | VARCHAR(20) | 角色(ADMIN/USER) | | status | TINYINT | 状态(1:正常, 0:禁用) | | created_at | TIMESTAMP | 创建时间 | | updated_at | TIMESTAMP | 更新时间 | | last_login_time | TIMESTAMP | 最后登录时间 | ## 快速开始 ### 环境要求 - JDK 26+ - Maven 3.6+ - Git ### 安装步骤 1. 克隆项目 ```bash git clone cd spring-boot ``` 2. 编译项目 ```bash mvn clean install ``` 3. 运行应用 ```bash mvn spring-boot:run ``` 或者打包后运行: ```bash mvn package java -jar target/spring-thymeleaf-0.0.1-SNAPSHOT.jar ``` 4. 访问应用 - 登录页面: http://localhost:8080/login - 注册页面: http://localhost:8080/register - 后台管理: http://localhost:8080/admin/users ### 默认账户 系统预置了两个测试账户: **管理员账户:** - 用户名: admin - 密码: admin123 **普通用户账户:** - 用户名: user - 密码: user123 ## API 接口 ### 认证接口 #### 用户注册 - **URL**: `POST /api/auth/register` - **参数**: ```json { "username": "string", "password": "string", "email": "string", "nickname": "string" } ``` - **响应**: 统一 ApiResponse 格式 ### 用户管理接口 #### 获取所有用户 - **URL**: `GET /api/users` - **权限**: ADMIN #### 获取单个用户 - **URL**: `GET /api/users/{id}` - **权限**: 认证用户 #### 更新用户 - **URL**: `PUT /api/users/{id}` - **权限**: ADMIN #### 删除用户 - **URL**: `DELETE /api/users/{id}` - **权限**: ADMIN #### 修改密码 - **URL**: `PUT /api/users/{id}/password` - **参数**: ```json { "oldPassword": "string", "newPassword": "string" } ``` #### 获取当前用户 - **URL**: `GET /api/users/current` ## 安全特性 1. **CSRF 保护**: 所有 POST/PUT/DELETE 请求都需要 CSRF Token 2. **密码加密**: 使用 BCrypt 算法对密码进行加密存储 3. **角色权限**: 基于 Spring Security 的角色访问控制 4. **会话管理**: 安全的会话管理和登出机制 ## 开发指南 ### 添加新功能 1. 在 `entity` 包中定义实体类 2. 在 `mapper` 包中创建 Mapper 接口和对应的 XML 文件 3. 在 `service` 包中定义服务接口和实现 4. 在 `controller` 包中创建 REST API 或页面控制器 5. 在 `templates` 目录中添加前端页面 ### 自定义配置 可以通过以下配置文件进行定制: - `application.yaml`: 主配置文件 - `application-dev.yaml`: 开发环境配置 - `application-prod.yaml`: 生产环境配置 - `application-test.yaml`: 测试环境配置 ### 扩展数据库 如果需要替换 H2 为其他数据库,只需: 1. 在 `pom.xml` 中添加相应驱动依赖 2. 修改 `application.yaml` 中的数据源配置 3. 调整 `schema.sql` 和 `data.sql` 以适配新数据库 ## 部署 ### 本地部署 按照快速开始部分的步骤即可在本地运行。 ### 生产部署 1. 设置 `SPRING_PROFILES_ACTIVE=prod` 环境变量 2. 配置生产环境的数据库连接 3. 使用 `mvn package` 打包应用 4. 部署到服务器或使用 Docker 容器化部署 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 许可证 本项目采用 MIT 许可证。