# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## 常用命令 ### 构建和运行 ```bash # 编译整个项目 mvn clean compile # 打包项目 mvn clean package # 运行应用程序 cd coder-common-thin-web mvn spring-boot:run # 或者运行打包后的jar java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar ``` ### 测试 ```bash # 运行所有测试 mvn test # 运行单个模块测试 mvn test -pl coder-common-thin-web ``` ### 数据库 ```bash # 数据库初始化SQL位于 # sql/coder-common-thin.sql ``` ## 项目架构概览 这是一个基于Spring Boot 3.5.0的多模块企业级开发框架,采用插件化架构设计。 ### 模块结构 - **coder-common-thin-web**: Web启动模块,应用程序入口点 - **coder-common-thin-common**: 公共工具模块,包含大量工具类、配置类和拦截器 - **coder-common-thin-model**: 数据模型模块,包含POJO、BO、VO和数据验证 - **coder-common-thin-mybatisplus**: 数据访问层模块,MyBatis Plus配置和Mapper - **coder-common-thin-modules**: 业务模块容器 - **coder-common-thin-plugins**: 插件模块,包含各种功能插件 ### 插件化架构 项目采用@Enable注解实现功能模块的可插拔配置: - `@EnableCoderSaToken`: Sa-Token认证插件 - `@EnableCoderEasyExcel`: Excel处理插件 - `@EnableCoderLimit`: 限流插件 - `@EnableCoderRepeatSubmit`: 防重提交插件 - `@EnableCoderDesensitize`: 数据脱敏插件 ### 技术栈 - **核心框架**: Spring Boot 3.5.0 + Java 17 - **数据库**: MySQL 9.3.0 + MyBatis Plus 3.5.12 - **缓存**: Redis(Spring Data Redis) - **安全认证**: Sa-Token 1.43.0 - **工具库**: Hutool 5.8.38, Fastjson2 2.0.57, Guava 33.4.8 - **业务功能**: EasyExcel 4.0.3, Easy-Captcha 1.6.2 ### 数据层设计 - **主键策略**: 雪花算法(ASSIGN_ID) - **逻辑删除**: 0-已删除, 1-未删除 - **多数据源**: 支持master/slave数据源动态切换 - **SQL监控**: 集成P6spy进行SQL性能监控 ### 配置文件 - **主配置**: `application.yml` - **环境配置**: `application-dev.yml` - **数据库配置**: 支持MySQL主从配置 - **Redis配置**: 使用Jackson2序列化,支持连接池 ## 开发指南 ### 添加新功能插件 1. 在`coder-common-thin-plugins`下创建新模块 2. 创建@Enable注解用于启用插件 3. 实现必要的配置类和工具类 4. 在主启动类上使用@Enable注解启用 ### 数据访问层开发 1. 实体类放在`coder-common-thin-model/domain/pojo` 2. Mapper接口放在`coder-common-thin-mybatisplus/mapper` 3. XML映射文件放在`resources/mapper` 4. 使用`@DS("dataSourceName")`注解切换数据源 ### 工具类使用 项目提供了丰富的工具类,位于`coder-common-thin-common/utils`: - **缓存工具**: `RedisUtil`, `LocalCacheUtil` - **日期工具**: `DateUtil`, `CalendarUtil` - **文件工具**: `FileUtil`, `UploadUtil`, `ZipUtil` - **字符串工具**: `StringUtil`, `ConvertUtil` - **IP工具**: `IpUtil`, `IpAddressUtil` - **JSON工具**: `JsonUtil` - **加密工具**: `MD5Util`, `CoderPasswordUtil` ### 配置说明 - **端口**: 默认18099,可通过`port`环境变量覆盖 - **文件路径**: 在`application-dev.yml`中配置`coder.filePath` - **数据库连接**: 在`application-dev.yml`中配置数据源信息 - **Redis配置**: 在`application-dev.yml`中配置Redis连接信息 ### 日志配置 - **日志文件**: `logback-spring.xml` - **日志级别**: 可通过环境变量调整 - **操作日志**: 自动记录,支持异步处理和定时清理 ## 注意事项 - 项目基于Java 17,确保开发环境版本匹配 - 使用中文注释,保持代码风格一致 - 新增功能遵循插件化设计模式 - 数据库操作优先使用MyBatis Plus提供的方法 - 安全认证统一使用Sa-Token,避免重复造轮子 - 工具类使用前先检查是否已有现成实现