120 lines
3.9 KiB
Markdown
120 lines
3.9 KiB
Markdown
# 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,避免重复造轮子
|
||
- 工具类使用前先检查是否已有现成实现 |