# webcommon **Repository Path**: goddesszz/webcommon ## Basic Information - **Project Name**: webcommon - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-04 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Webcommon ### 介绍 Webcommon 是一个基于 Spring Boot 3.x 的通用工具组件库,专为 Java 17+ 环境设计。 该组件库封装了 Web 开发中常用的工具类和功能模块,旨在提高开发效率,减少重复代码,提供统一的解决方案。 具体主要依赖现成的第三方组件,而非自己造轮子。 ### 主要特性 - 🚀 **开箱即用**:基于 Spring Boot 自动配置,零配置启动 - 🔧 **功能丰富**:涵盖权限控制、日志记录、异常处理、文件上传等核心功能 - 🛡️ **安全可靠**:内置幂等性校验、参数签名验证等安全机制 - 🌍 **国际化支持**:完善的多语言消息处理 - 📦 **模块化设计**:各功能模块独立可选,按需引入 ### 功能模块 #### 🔐 权限认证模块 - 用户登录信息自动填充 - 请求权限白名单管理 - Feign 请求头用户信息透传 #### 📝 日志记录模块 - 访问日志自动记录 - 操作日志切面处理 - 访问监控过滤器 #### 🌐 Web请求处理模块 - 接口响应数据封装 - 全局异常处理器 - 统一错误码管理 - 查询参数处理 - 请求参数校验 #### 🔒 安全防护模块 - 幂等性校验 - 参数签名验证 - 数据隐私脱敏 #### 📤 文件处理模块 - MinIO 对象存储集成 - 文件上传下载 - 头像生成工具 #### 🔄 数据处理模块 - 数据观察者模式 - Redis 缓存工具 - 实体审计功能 #### 🛠️ 工具组件 - 参数校验约束 - 数据拷贝工具 - ZIP 压缩工具 - I18n消息工具类 - Redis缓存封装工具 ### 环境要求 - Java 17+ - Spring Boot 3.4.6+ - Maven 3.9+ ### Maven 依赖 在您的 `pom.xml` 中添加以下依赖: ```xml io.gitee.goddesszz webcommon 1.0.7 ``` ### 使用方式 #### 1. 基础配置 在您的 Spring Boot 启动类上添加 `@SpringBootApplication` 注解: ```java @SpringBootApplication public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); System.err.printf("application startup success... [server.port=%s, spring.profiles.active=%s]%n", SpringContextHolder.getProperty("server.port"), SpringContextHolder.getProperty("spring.profiles.active")); } } ``` #### 2. 启用特定功能 ##### 启用 MinIO 文件上传功能 ```java @SpringBootApplication @EnableMinioClient public class YourApplication { // ... } ``` ##### 启用 MyBatis 审计功能 ```java @SpringBootApplication @EnableMybatisAudit public class YourApplication { // ... } ``` #### 3. 核心功能使用示例 ##### 异常处理 ```java @RestController public class DemoController { @GetMapping("/test") public ApiResult test() { throw new ServiceException(BizError.DEFAULT_ERROR); } } ``` ##### 访问日志记录 ```java @RestController public class DemoController { @AccessLog("用户查询操作") @GetMapping("/users") public ApiResult> getUsers() { // 业务逻辑 return success(userService.findAll()); } } ``` ##### 幂等性校验 ```java @RestController public class DemoController { @PostMapping("/order") @EnsureIdempotent(expireSeconds = 300) public ApiResult createOrder(@RequestBody OrderDto orderDto) { // 创建订单逻辑 return success(orderService.create(orderDto)); } } ``` ##### 参数签名验证 ```java @RestController public class DemoController { @PostMapping("/secure/api") @EnsureSafeSign public ApiResult secureApi(@RequestBody SecureRequest request) { // 安全接口逻辑 return success("处理成功"); } } ``` ##### 权限白名单配置 ```java @RestController @RequestMapping("/api/public") public class PublicController { @NonePermission @GetMapping("/health") public ApiResult healthCheck() { return success("OK"); } } ``` ### 配置选项 在 `application.yml` 中可配置以下选项: ```yaml # 访问监控日志 access-monitor: log: enabled: true # 缓存配置 cache: expire-time: 60 # 客户端配置 client: appSecret: your-app-secret # 权限白名单扫描包 none-permission: url-scanner-package: com.yourcompany.yourapp ``` ### 版本更新记录 #### v1.0.7 - 升级 Spring Boot 至 3.4.6 - 优化自动配置逻辑 - 修复已知问题 #### v1.0.6 - 添加数据观察者模式 - 增强 Redis 缓存工具 - 改进异常处理机制 ### 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。 ### 开源协议 本项目采用 MIT 协议开源。 ### 联系方式 - 作者:goddesszz - 邮箱:1406103364@qq.com - Gitee:https://gitee.com/goddesszz/webcommon