diff --git a/README.md b/README.md index 549b6b5985357c35d99fbe9b950d17b39c338bc3..01483430eec4ab8a0783b0e5e24b44ffcf6dbdae 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,171 @@ # secret-boot-framework -![JDK](https://img.shields.io/badge/JDK-1.8-green.svg) -![Maven](https://img.shields.io/badge/Maven-3.6.1-green.svg) -![MySQL](https://img.shields.io/badge/MySQL-5.7-green.svg) -![Redis](https://img.shields.io/badge/Redis-3.2.100-green.svg) -[![license](https://img.shields.io/badge/license-Apache%20v2-yellow.svg)](https://gitee.com/secret_C/secretBlogBoot/blob/master/LICENSE) +## 介绍 +`secret-boot-framework` 是一个基于 Spring Boot 的基础框架,旨在为开发者提供一套开箱即用的解决方案,涵盖缓存、安全、数据访问、异常处理、工具类等多个方面。该框架适用于快速搭建企业级应用系统,简化开发流程并提高开发效率。 +## 模块介绍 +框架由多个模块组成,每个模块专注于特定的功能领域: -#### 介绍 -secret-boot脚手架(根据核心依赖版本长期更新,正常更新周期为3个月,紧急bug修复会尽快处理) +- **secret-boot-framework-core** + 核心模块,包含基础组件、工具类、异常处理、模型定义、配置类等,是整个框架的基础。 -只实现开发中最基础的springboot、mybatis、redis等常用组件的整合及扩展工具 +- **secret-boot-framework-cache** + 提供基于 Redis 的缓存支持,包括缓存注解、切面、配置及服务类,便于实现方法级别的缓存控制。 -内置丰富的基础工具类,开箱即用 +- **secret-boot-framework-security** + 安全模块,集成 Spring Security,提供 JWT 认证、权限控制、登录用户管理等功能。 -**关于本框架详情介绍请看 [wiki说明文档](https://gitee.com/SecretOpen/secret-boot-framework/wikis/%E7%AE%80%E4%BB%8B?sort_id=3220070)** +- **secret-boot-framework-dynamic-datasource** + 支持多数据源切换,通过注解实现运行时动态数据源选择。 -##### 模块介绍 -| 模块 | 介绍 | -| ---- | ---- | -| secret-boot-framework-core | 框架核心模块 | -| secret-boot-framework-web | 框架web模块 | -| secret-boot-framework-cache | 框架缓存模块 | -| secret-boot-framework-dynamic-datasource | 多数据源模块 | -| secret-boot-framework-excel | easyExcel工具模块 | -| secret-boot-framework-jpa | jpa扩展模块 | -| secret-boot-framework-mail | mail封装模块 | -| secret-boot-framework-mybatis-plus | mybatis-plus扩展模块 | -| secret-boot-framework-poi | poi封装模块 | -| secret-boot-framework-security | spring-security扩展模块 | +- **secret-boot-framework-jpa** + 基于 JPA 的数据访问层封装,提供通用的 Repository 和 Service 实现。 +- **secret-boot-framework-mybatisplus** + 集成 MyBatis-Plus,提供分页查询、SQL 注入过滤等功能。 -如果觉得以上工具仍然不够用,本框架内置了hutool来解决大家的需求。 +- **secret-boot-framework-excel** + Excel 导出导入支持,基于 EasyExcel 实现高性能的数据读写。 -**关于本框架详情介绍请看 [wiki说明文档](https://gitee.com/SecretOpen/secret-boot-framework/wikis/%E7%AE%80%E4%BB%8B?sort_id=3220070)** +- **secret-boot-framework-poi** + 使用 Apache POI 实现 Excel 操作,支持注解驱动的字段映射。 -#### 互动交流群 +- **secret-boot-framework-mail** + 邮件发送模块,封装了简单邮件、HTML 邮件、带附件邮件的发送功能。 -**企鹅群:635508577** +- **secret-boot-framework-web** + Web 层通用组件,包括全局异常处理器、拦截器、响应封装等。 -![avatar](https://images.gitee.com/uploads/images/2021/0307/150703_c5b23743_1815246.png) +- **secret-boot-framework-demo** + 示例模块,包含多个使用框架的示例项目,如基于 MyBatis Plus 的 CRUD 示例、JPA 示例、安全模块示例等。 +## 互动交流群 +如需交流或反馈问题,请加入我们的 Gitee 社区或联系作者。 -#### 使用方法 -已发布到maven中央仓库,建议使用1.4.0+版本 -``` - - - - com.gitee.secretopen - secret-boot-framework-dependencies - 2.3.0 - pom - import - - - +## 使用方法 + +### 1. 引入依赖 +在你的 Spring Boot 项目中引入所需的模块依赖,例如: +```xml - com.gitee.secretopen + cn.chenc.framework secret-boot-framework-core - 2.2.0 + 1.0.0 ``` -#### 截图 -![avatar](http://secretOpen.gitee.io/secret-boot-framework/img1.png) +根据需要引入其他模块如 `secret-boot-framework-cache`, `secret-boot-framework-security` 等。 + +### 2. 配置 +在 `application.yml` 或 `application.properties` 中配置相关参数,例如: + +#### Redis 缓存配置 +```yaml +spring: + redis: + host: localhost + port: 6379 +``` + +#### JWT 安全配置 +```yaml +secret-config: + jwt: + header: Authorization + secret: your-secret-key + expireTime: 3600 +``` + +#### 多数据源配置(可选) +```yaml +spring: + datasource: + druid: + master: + url: jdbc:mysql://localhost:3306/master_db + username: root + password: root + slave: + url: jdbc:mysql://localhost:3306/slave_db + username: root + password: root +``` + +### 3. 使用缓存 +使用 `@RedisCache` 注解实现方法级别的缓存控制: +```java +@RedisCache(expire = 60) +public List getAllUsers() { + return userRepository.findAll(); +} +``` + +### 4. 权限控制 +使用 `@PreAuthorize` 注解进行权限校验: + +```java +@PreAuthorize(hasPermi = "user:view") +public List getUsers() { + return userService.findAll(); +} +``` + +### 5. 多数据源切换 +使用 `@ChangDataSource` 注解切换数据源: + +```java +@ChangDataSource("slaveDataSource") +public List getUsersFromSlave() { + return userRepository.findAll(); +} +``` + +### 6. 全局异常处理 +使用 `@RestControllerAdvice` 统一处理异常: + +```java +@RestControllerAdvice +public class GlobalExceptionHandler { + @ExceptionHandler(BaseException.class) + public ResponseVO handleBaseException(BaseException e) { + return ResponseVO.error(e.getCode(), e.getMessage()); + } +} +``` + +### 7. Excel 导出导入 +使用 `ExcelUtil` 或 `EasyExcelUtil` 实现 Excel 操作: + +```java +// 导出 Excel +ExcelUtil util = new ExcelUtil<>(User.class); +return util.exportExcel(userList, "用户列表"); + +// 导入 Excel +List userList = ExcelUtil.importExcel(inputStream, User.class); +``` + +### 8. 邮件发送 +注入 `MailTemplate` 发送邮件: + +```java +@Autowired +private MailTemplate mailTemplate; + +mailTemplate.sendHtmlMail("to@example.com", "标题", "内容"); +``` -#### demo使用说明 +## 截图 +暂无截图。 -1. 导入maven包 -2. 运行DemoApplication -3. 访问localhost:8080 +## demo使用说明 +详见 `secret-boot-framework-demo` 模块中的示例代码,包含完整的使用案例和配置说明。 -### 致谢 +## 致谢 +感谢 Spring Boot、MyBatis Plus、JPA、Redis、JWT、Apache POI、EasyExcel ://gitee.com/secret-framework/secret-boot-framework +- **英文文档**: [README.en.md](README.en.md) -本项目有参考他人的代码,感谢各位大神的付出! -* 广大的开源开发者 -* [RuoYiVue](https://gitee.com/y_project/RuoYi-Vue) 若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 -* [Hotool](https://gitee.com/loolly/hutool) 一个小而全的Java工具类库。 +## 版权与许可 +本项目采用 MIT License 开源协议。详见 [LICENSE](LICENSE) 文件。 \ No newline at end of file