# Freedom Admin 管理系统 ## 项目简介 Freedom Admin 是一个基于 Spring Boot 2.7.10 的后台管理系统,集成了 Spring Security、MyBatis-Plus、Thymeleaf 等主流技术栈,提供完整的代码生成器、邮件发送、用户管理等功能。 ## 技术栈 - **后端框架**: Spring Boot 2.7.10 - **安全框架**: Spring Security 3.3.2 - **ORM 框架**: MyBatis-Plus 3.5.7 - **模板引擎**: Thymeleaf - **数据库**: MySQL 8.0.33 - **连接池**: HikariCP - **权限管理**: JWT 认证 - **邮件服务**: Spring Mail - **代码生成**: Beetl 模板引擎 ## 项目结构 ``` ├── src/main/java/com/freedom/admin/ │ ├── AdminApplication.java # 应用启动类 │ ├── base/ # 基础类 │ ├── common/ # 通用工具类 │ ├── config/ # 配置类 │ ├── controller/ # 控制器层 │ ├── entity/ # 实体类 │ ├── mapper/ # 数据访问层 │ ├── service/ # 服务层 │ └── util/ # 工具类 ├── src/main/resources/ │ ├── mapper/ # MyBatis 映射文件 │ ├── btl/ # 代码生成模板 │ └── application.yml # 配置文件 ├── sql/ │ └── init.sql # 数据库初始化脚本 └── pom.xml # Maven 依赖配置 ``` ## 功能特性 ### 1. 用户管理 - 用户注册、登录、权限管理 - JWT 认证机制 - 用户信息维护 ### 2. 代码生成器 - 基于 Beetl 模板引擎 - 支持前后端代码自动生成 - 可自定义生成规则和模板 - 生成 Controller、Service、Mapper、Entity、Vue 等文件 ### 3. 邮件服务 - 邮件验证码发送 - 注册邮件通知 - 可配置的邮件模板 ### 4. 数据管理 - 系统部门管理 - 活动信息管理 - 药品信息管理 - 订单信息管理 - 病例本管理 ### 5. 系统特性 - 统一异常处理 - 分页插件支持 - 逻辑删除 - 接口权限控制 ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6.3+ - MySQL 8.0+ ### 数据库配置 1. 创建数据库: ```sql CREATE DATABASE demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行初始化脚本: ```bash mysql -u root -p demo < sql/init.sql ``` ### 配置文件 修改 `src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC username: root password: 123456 ``` ### 运行项目 ```bash # 使用 Maven 运行 mvn spring-boot:run # 或者打包后运行 mvn clean package java -jar target/freedom-admin-1.0.1.jar ``` 项目启动后访问:http://localhost:8800 ## 代码生成器使用 ### 1. 查询数据库表 ```bash GET /generator/findListWithPage?pageNum=1&pageSize=10 ``` ### 2. 获取表下拉列表 ```bash GET /generator/getTableSelectList ``` ### 3. 执行代码生成 ```bash POST /generator/execute Content-Type: application/x-www-form-urlencoded tableName=your_table_name&ruleStr=[{"rule":"value"}] ``` ## API 接口 ### 认证相关 - 用户登录 - Token 刷新 - 权限验证 ### 用户管理 - 用户注册 - 用户信息查询 - 用户信息修改 ### 邮件服务 - 发送验证码 - 注册邮件通知 ### 数据管理 - 部门管理 - 活动管理 - 药品管理 - 订单管理 ## 开发指南 ### 添加新功能模块 1. 在 `entity` 包下创建实体类 2. 在 `mapper` 包下创建 Mapper 接口 3. 在 `service` 包下创建 Service 接口和实现类 4. 在 `controller` 包下创建 Controller 类 5. 在 `resources/mapper` 下创建对应的 XML 映射文件 ### 权限配置 在 Controller 方法上使用注解控制权限: ```java @PermitAll // 允许所有用户访问 @PreAuthorize("hasRole('ADMIN')") // 需要管理员权限 ``` ## 部署说明 ### 生产环境配置 1. 修改数据库连接为生产环境地址 2. 配置 JWT 密钥 3. 配置邮件服务器信息 4. 设置日志级别和路径 ### 安全建议 - 定期更换 JWT 密钥 - 使用 HTTPS 协议 - 配置防火墙规则 - 定期备份数据库 ## 常见问题 ### Q: 项目启动失败,提示数据库连接错误 A: 检查 application.yml 中的数据库配置是否正确,确保数据库服务已启动 ### Q: 代码生成器无法生成文件 A: 检查模板文件路径和项目路径配置,确保有写入权限 ### Q: 邮件发送失败 A: 检查邮件服务器配置,包括 SMTP 主机、端口、用户名和授权码 ## 贡献指南 1. Fork 本仓库 2. 创建新的功能分支 3. 提交代码变更 4. 创建 Pull Request ## 许可证 本项目仅用于内部学习和研究使用。 ## 联系方式 - 项目作者: zhangjiaxun - 邮箱: 732128096@qq.com --- *项目最后更新: 2024年4月*