admin管理员组

文章数量:1130349

1. 什么是 WSL?

WSL(Windows Subsystem for Linux)是微软提供的一种兼容层,允许在 Windows 系统中运行完整的 Linux(如 Ubuntu)环境,就像在真实的 Linux 系统上一样。

使用 WSL 后,可以在 Windows 上运行 npm、Python、Docker、Claude Code 等只支持 Linux 的工具。


2. 安装 WSL(适用于 Windows 10 2004+ 或 Windows 11)

使用官方推荐的一键安装命令

步骤:

  • 打开 PowerShell(管理员权限)

    • 在开始菜单中搜索 “PowerShell”

    • 右键点击 → 选择 “以管理员身份运行”

  • 执行以下命令安装 WSL:

    wsl --install
  • 系统将自动完成以下操作:

    • 安装最新版 WSL(默认 WSL 2)

    • 安装默认 Linux 发行版(通常是 Ubuntu)

    • 自动重启或提示你手动重启

  • 重启后首次启动 Ubuntu 子系统

    • 系统会打开 Ubuntu 窗口

    • 提示你设置用户名(任意英文名)和密码(Linux 登录用)


3. 进入 Linux(Ubuntu)子系统

打开方式:

  • 开始菜单 → 搜索 “Ubuntu” → 回车,即可打开 Linux 终端。


4. 在 WSL 中安装 Node.js(官方推荐方式)

使用 NodeSource 提供的 LTS 安装源,兼容性好、更新及时。

  1. 更新系统仓库

    sudo apt update
    sudo apt install -y curl ca-certificates
    
  2. 添加 Node.js 官方源并安装

    curl -fsSL https://deb.nodesource/setup_lts.x | sudo -E bash -
    sudo apt install -y nodejs
    
  3. 验证安装

    node -v    # 应该输出 v18+ 或 v20+
    npm -v     # 输出 npm 的版本
    

5. 禁止 WSL 继承 Windows 的 PATH(关键步骤)

为避免 Claude Code 错误调用到 Windows 版 node/npm,必须执行以下设置。

  1. 编辑 wsl.conf 配置文件

    sudo nano /etc/wsl.conf
  2. 写入以下内容:

    [interop]
    appendWindowsPath = false
    
  3. 保存并退出(Ctrl+O 回车,Ctrl+X)

  4. 回到 Windows,关闭 WSL

    wsl --shutdown
  5. 重新打开 WSL,再验证环境

    which node
    which npm
    

    ✅ 输出路径应该是:

    /usr/bin/node
    /usr/bin/npm
    

    不能是:

    /mnt/c/...(Windows 路径)
    

6. 安装 Claude Code(Linux 专属,不能在 Windows 上执行)

🚨 重要提醒:

Claude Code 不支持在 Windows 上直接运行,必须在 Linux 或 macOS 上安装。

所以我们使用 WSL 提供的 Linux 环境来安装它。


安装命令(加 sudo 以获取权限):

sudo npm install -g @anthropic-ai/claude-code
  • 输入你之前设置的 Linux 密码即可安装。

  • 安装完成后会提示 added X packages in Xs


7. 验证安装

输入以下命令:

claude

一般情况下国内都是通过代理才能访问到claude,所以需要为WSL也设置代理,不然WSL访问不了Claude就会出现下面的报错:
 

╭──────────────────────────╮ 
│ ✻ Welcome to Claude Code │
╰──────────────────────────╯

 Unable to connect to Anthropic services

 Failed to connect to api.anthropic: ERR_BAD_REQUEST

 Please check your internet connection and network settings.

 Note: Claude Code might not be available in your country. Check supported countries at
 https://anthropic/supported-countries

所以得通过更改电脑中的设置来处理,要开启使用代理服务器

同时还要在加速器中使用TUN模式才能使得WSL的网络被成功代理。

8. Claude Code 初始化

(1)你要对你的项目使用Claude Code,所以需要先在WSL中进入你的项目目录,再启动Claude Code。

# 切换到你的 Spring Boot 项目目录
cd /mnt/d/your-project-folder

# 然后在项目目录中启动 Claude Code
claude

(2)然后使用 /init 命令让Claude Code扫描你的项目并生成CLAUDE.md 文件,后续Claude Code对于你项目的所有操作都会围绕这个来执行,所以很重要。

在Claude Code生成完这个文件之后,它会放在你项目的根目录下,你可以在记事本中对于这个文件按照你的意愿进行修改,你修改地越好,它能发挥地作用越大。

下面给出关于一个Java项目地一个CLAUDE.md 文件模板:

# CLAUDE.md

本文件为 Claude Code (claude.ai/code) 提供项目指导和开发规范。

## 项目概述

### 基本信息
- **项目名称**: [项目名称]
- **项目类型**: [Web应用 / API服务 / 微服务 / 桌面应用]
- **开发阶段**: [需求分析 / 开发中 / 测试 / 预发布 / 生产环境]
- **核心功能**: [核心业务功能描述]
- **目标用户**: [用户群体描述]

### 技术选型
- **后端框架**: Spring Boot [版本号] + Java [版本号]
- **数据库**: [MySQL / PostgreSQL / Oracle] [版本号]
- **ORM框架**: [MyBatis-Plus / JPA / Hibernate]
- **缓存技术**: [Redis / Caffeine / Hazelcast]
- **消息队列**: [RabbitMQ / Apache Kafka / RocketMQ]
- **安全框架**: [Spring Security / Shiro]
- **认证方式**: [JWT / Session / OAuth2]

### 外部服务集成
- **支付服务**: [微信支付 / 支付宝 / 银联]
- **文件存储**: [阿里云OSS / 腾讯云COS / MinIO]
- **短信服务**: [阿里云短信 / 腾讯云短信]
- **推送服务**: [个推 / 极光推送]
- **地图服务**: [高德地图 / 百度地图]
- **其他集成**: [具体说明]

## 开发环境配置

### 环境要求
```bash
# 开发工具版本
Java: [版本号]+
Maven: 3.6+
Node.js: [如果有前端项目]
Docker: [如果使用容器]

# 数据库和中间件
MySQL: [版本号]
Redis: [版本号] 
RabbitMQ: [版本号] (如果使用)
```

### 常用开发命令
```bash
# 编译和构建
mvn clean compile                    # 清理并编译
mvn clean package                    # 打包应用
mvn clean install                    # 安装到本地仓库

# 运行和调试
mvn spring-boot:run                  # 启动开发模式
mvn spring-boot:run -Dspring-boot.run.profiles=dev    # 指定配置文件启动
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"  # 调试模式

# 测试相关
mvn test                            # 运行所有测试
mvn test -Dtest=[TestClassName]     # 运行指定测试类
mvn test -Dtest=[TestClassName]#[methodName]  # 运行指定测试方法
mvn clean test jacoco:report        # 生成测试覆盖率报告

# 代码检查
mvn spotbugs:check                  # 静态代码检查
mvn checkstyle:check                # 代码规范检查
mvn dependency:analyze              # 依赖分析
```

### 数据库操作
- **数据库**: [数据库类型] on [主机]:[端口]/[数据库名]
- **数据迁移**: [Flyway / Liquibase / 手动执行]
- **ORM配置**: [具体ORM框架的配置说明]
- **连接池**: [HikariCP / Druid]

## 项目架构

### 整体架构模式
**[选择适用的架构]**: 
- 单体应用 (Monolithic)
- 分层架构 (Layered Architecture)
- 微服务架构 (Microservices)
- 六边形架构 (Hexagonal Architecture)
- CQRS + Event Sourcing

### 代码结构
```
com.[公司名].[项目名]/
├── config/          # 配置类
├── controller/      # 控制器层 - REST API
├── service/         # 服务层 - 业务逻辑
│   ├── impl/       # 服务实现类
│   └── dto/        # 数据传输对象
├── repository/      # 数据访问层
│   ├── mapper/     # MyBatis映射器
│   └── entity/     # 数据库实体
├── component/       # 组件类
├── util/           # 工具类
├── exception/      # 自定义异常
├── constant/       # 常量定义
├── enums/          # 枚举类
├── aspect/         # AOP切面
├── filter/         # 过滤器
├── interceptor/    # 拦截器
├── security/       # 安全相关
├── schedule/       # 定时任务
├── mq/            # 消息队列相关
│   ├── producer/  # 消息生产者
│   └── consumer/  # 消息消费者
└── vo/            # 视图对象
```

### 分层架构详解
**Controller层 → Service层 → Repository层 → Entity层**

**职责划分**:
- **Controller**: 参数校验、调用Service、返回结果
- **Service**: 业务逻辑处理、事务管理
- **Repository**: 数据访问、数据库操作
- **Entity**: 数据模型定义

### 消息队列架构 (如适用)
**使用场景**:
- [异步处理场景1]
- [异步处理场景2]
- [削峰填谷场景]
- [系统解耦场景]

**队列配置**:
- **[队列名1]**: [用途说明] - TTL: [时间], DLX: [是否配置]
- **[队列名2]**: [用途说明] - TTL: [时间], DLX: [是否配置]

**关键模式**:
- 消息确认机制: [manual / auto]
- 死信队列处理: [处理策略]
- 消息重试策略: [重试次数和间隔]

### 缓存架构 (如适用)
**缓存层级**:
- **L1缓存**: [本地缓存工具] - [容量], [TTL时间]
- **L2缓存**: [分布式缓存] - [配置说明]
- **数据库缓存**: [查询缓存配置]

**缓存策略**:
- **缓存更新**: [更新策略说明]
- **缓存穿透**: [防护措施]
- **缓存雪崩**: [防护措施]
- **缓存一致性**: [保证机制]

### 安全架构
**认证方式**: [JWT / Session / OAuth2等]
**授权机制**: [RBAC / ABAC等]
**安全过滤链**: [过滤器配置说明]
**加密算法**: [使用的加密方式]

### 数据库设计
**核心实体**: [实体1], [实体2], [实体3]...

**关键关系**:
- [实体A] 与 [实体B]: [关系类型] ([关系说明])
- [实体C] 与 [实体D]: [关系类型] ([关系说明])

**索引策略**: [重要索引说明]
**分库分表**: [如果适用,说明策略]

## 业务逻辑和流程

### 核心业务流程
**[业务流程1名称]**:
1. [步骤1]
2. [步骤2] 
3. [步骤3]

**[业务流程2名称]**:
1. [步骤1]
2. [步骤2]
3. [步骤3]

### 关键业务规则
- **[规则1]**: [具体说明]
- **[规则2]**: [具体说明]
- **[规则3]**: [具体说明]

### 用户角色权限
- **[角色1]**: [权限说明]
- **[角色2]**: [权限说明]
- **[角色3]**: [权限说明]

## 开发规范和约定

### 代码规范
**命名约定**:
- 类名: PascalCase (如: UserService)
- 方法名: camelCase (如: getUserById)
- 常量: UPPER_SNAKE_CASE (如: MAX_RETRY_COUNT)
- 包名: 全小写,多个单词用点分隔

**注释规范**:
- 类和公共方法必须有JavaDoc注释
- 业务逻辑复杂的代码块要有行内注释
- 使用中文注释,便于团队理解

**异常处理**:
- 业务异常继承自 [BusinessException]
- 系统异常使用 @ControllerAdvice 统一处理
- 错误码格式: [错误码规范说明]

### 日志规范
**日志级别使用**:
- ERROR: 系统异常、业务关键错误
- WARN: 业务异常、性能警告
- INFO: 关键业务操作记录
- DEBUG: 调试信息

**日志格式**: [日志格式说明]
**敏感信息**: 必须脱敏处理

### 数据库规范
**表命名**: [命名规范]
**字段命名**: [命名规范]
**索引命名**: [命名规范]

### API设计规范
**RESTful设计**:
- GET: 查询操作
- POST: 创建操作  
- PUT: 完整更新
- PATCH: 部分更新
- DELETE: 删除操作

**响应格式**:
```json
{
  "code": "状态码",
  "message": "描述信息", 
  "data": "返回数据",
  "timestamp": "时间戳"
}
```

## 性能优化策略

### 数据库优化
- **索引优化**: [具体策略]
- **查询优化**: [具体策略]
- **连接池配置**: [配置说明]

### 缓存优化
- **缓存预热**: [策略说明]
- **缓存更新**: [策略说明]
- **缓存监控**: [监控指标]

### JVM优化
- **内存配置**: [配置参数]
- **GC策略**: [GC选择和参数]
- **监控工具**: [使用的工具]

## 测试策略

### 测试分层
- **单元测试**: Service层业务逻辑测试
- **集成测试**: 数据库操作、外部服务集成测试
- **端到端测试**: 完整业务流程测试

### 测试工具
- **单元测试**: JUnit 5 + Mockito
- **集成测试**: SpringBootTest + TestContainers
- **性能测试**: [JMeter / Gatling]

### 测试数据
- **测试数据库**: [测试环境数据库配置]
- **Mock数据**: [Mock策略说明]
- **测试用例**: [重要测试场景]

## 部署和运维

### 环境配置
**开发环境**: [配置说明]
**测试环境**: [配置说明]  
**预发布环境**: [配置说明]
**生产环境**: [配置说明]

### 部署流程
```bash
# 构建部署包
mvn clean package -P[profile]

# Docker部署 (如适用)
docker build -t [image-name] .
docker run -p [port] [image-name]

# 传统部署
java -jar -Dspring.profiles.active=[profile] target/[jar-name].jar
```

### 监控和日志
**应用监控**: [监控工具和指标]
**日志收集**: [日志收集方案]
**性能监控**: [性能监控方案]
**报警配置**: [报警策略]

## Claude Code 使用偏好

### 代码生成偏好
- 生成代码包含完整的中文注释
- 异常处理要完整,包含业务异常和系统异常
- 日志记录要详细,使用 @Slf4j
- 参数校验要严格,使用 @Valid 注解
- 返回结果统一使用项目定义的响应格式

### 代码分析偏好
- 重点关注性能优化机会
- 检查潜在的安全漏洞
- 分析代码重复性,提供重构建议
- 关注异步处理和并发安全
- 数据库查询性能分析

### 重构偏好
- 提取公共方法和工具类
- 优化复杂的条件判断逻辑
- 改进异常处理机制
- 优化数据库查询和缓存使用
- 改进代码可读性和维护性

## 项目状态和计划

### 当前开发状态
**已完成功能**:
- [功能1]
- [功能2]  
- [功能3]

**开发中功能**:
- [功能4] - [预计完成时间]
- [功能5] - [预计完成时间]

**计划开发功能**:
- [功能6] - [计划开始时间]
- [功能7] - [计划开始时间]

### 已知问题和技术债务
- **[问题1]**: [问题描述] - 优先级: [高/中/低]
- **[问题2]**: [问题描述] - 优先级: [高/中/低]
- **[技术债务1]**: [债务描述] - 计划解决时间: [时间]

### 性能指标目标
- **响应时间**: [目标值]
- **并发用户数**: [目标值]
- **数据库连接数**: [目标值]
- **内存使用**: [目标值]

---

**文档维护**: 本文档应该随着项目发展定期更新,建议每周或每个迭代结束后进行更新。

这是一个完整的架构模板,包含了:

  • 📋 项目基本信息配置
  • 🏗️ 完整的技术栈选项
  • 📁 标准的代码结构
  • 🔄 各种架构模式说明
  • 📝 开发规范和约定
  • 🧪 测试和部署策略
  • 🤖 Claude Code 使用偏好

可以根据自己的项目需求,只需要修改对应的板块内容即可。

(3)先在IDEA中下载 Claude Code 的插件,然后再在 Claude Code 中使用 /ide 命令去将IDEA和你的Claude Code进行连接。

Claude Code + IntelliJ IDEA 集成使用

  • 代码分析和建议
# 在 Claude Code 中
"分析这个 Controller 类的设计问题"
"这个 Service 方法的性能可以怎么优化?"
"帮我重构这个 Repository 层的代码"
  • 直接编辑文件
# Claude 可以直接修改你的 Java 文件
"帮我在 UserController.java 中添加一个分页查询接口"
"修改 SecurityConfig.java 添加 JWT 认证配置"
  • 生成代码模板
# 生成完整的类文件
"根据数据库表结构生成 User 实体类"
"创建一个标准的 Spring Boot 异常处理器"

实际工作流程

  1. IDEA 中编写代码 → 遇到问题

  2. 切换到 Claude Code → 描述问题或需求

  3. Claude 提供解决方案 → 可能直接修改文件

  4. 回到 IDEA → 查看修改结果,继续开发

上面的初始化部分,对于一个项目目录文件夹,进行一次即可。 

9. 具体使用细节 

(1)使用 /compact 指令清理上下文但保留关键内容

每次使用claude命令进入 Claude Code 的界面,都是一次对话的开启,如果一整天都使用一个上下文,上下文就会臃肿,导致 Claude Code 的处理能力变弱,所以在对话过长之后,要么重新开启一个对话,要么就用/compact 指令清理上下文。

/compact
# 或者带自定义指令
/compact "请保留关于数据库设计的讨论,其他可以简化"

(2)使用/clear指令完全清除对话历史

/clear
  • 彻底清空所有对话记录
  • 释放内存和上下文空间
  • 重新开始一个"干净"的对话

1. 什么是 WSL?

WSL(Windows Subsystem for Linux)是微软提供的一种兼容层,允许在 Windows 系统中运行完整的 Linux(如 Ubuntu)环境,就像在真实的 Linux 系统上一样。

使用 WSL 后,可以在 Windows 上运行 npm、Python、Docker、Claude Code 等只支持 Linux 的工具。


2. 安装 WSL(适用于 Windows 10 2004+ 或 Windows 11)

使用官方推荐的一键安装命令

步骤:

  • 打开 PowerShell(管理员权限)

    • 在开始菜单中搜索 “PowerShell”

    • 右键点击 → 选择 “以管理员身份运行”

  • 执行以下命令安装 WSL:

    wsl --install
  • 系统将自动完成以下操作:

    • 安装最新版 WSL(默认 WSL 2)

    • 安装默认 Linux 发行版(通常是 Ubuntu)

    • 自动重启或提示你手动重启

  • 重启后首次启动 Ubuntu 子系统

    • 系统会打开 Ubuntu 窗口

    • 提示你设置用户名(任意英文名)和密码(Linux 登录用)


3. 进入 Linux(Ubuntu)子系统

打开方式:

  • 开始菜单 → 搜索 “Ubuntu” → 回车,即可打开 Linux 终端。


4. 在 WSL 中安装 Node.js(官方推荐方式)

使用 NodeSource 提供的 LTS 安装源,兼容性好、更新及时。

  1. 更新系统仓库

    sudo apt update
    sudo apt install -y curl ca-certificates
    
  2. 添加 Node.js 官方源并安装

    curl -fsSL https://deb.nodesource/setup_lts.x | sudo -E bash -
    sudo apt install -y nodejs
    
  3. 验证安装

    node -v    # 应该输出 v18+ 或 v20+
    npm -v     # 输出 npm 的版本
    

5. 禁止 WSL 继承 Windows 的 PATH(关键步骤)

为避免 Claude Code 错误调用到 Windows 版 node/npm,必须执行以下设置。

  1. 编辑 wsl.conf 配置文件

    sudo nano /etc/wsl.conf
  2. 写入以下内容:

    [interop]
    appendWindowsPath = false
    
  3. 保存并退出(Ctrl+O 回车,Ctrl+X)

  4. 回到 Windows,关闭 WSL

    wsl --shutdown
  5. 重新打开 WSL,再验证环境

    which node
    which npm
    

    ✅ 输出路径应该是:

    /usr/bin/node
    /usr/bin/npm
    

    不能是:

    /mnt/c/...(Windows 路径)
    

6. 安装 Claude Code(Linux 专属,不能在 Windows 上执行)

🚨 重要提醒:

Claude Code 不支持在 Windows 上直接运行,必须在 Linux 或 macOS 上安装。

所以我们使用 WSL 提供的 Linux 环境来安装它。


安装命令(加 sudo 以获取权限):

sudo npm install -g @anthropic-ai/claude-code
  • 输入你之前设置的 Linux 密码即可安装。

  • 安装完成后会提示 added X packages in Xs


7. 验证安装

输入以下命令:

claude

一般情况下国内都是通过代理才能访问到claude,所以需要为WSL也设置代理,不然WSL访问不了Claude就会出现下面的报错:
 

╭──────────────────────────╮ 
│ ✻ Welcome to Claude Code │
╰──────────────────────────╯

 Unable to connect to Anthropic services

 Failed to connect to api.anthropic: ERR_BAD_REQUEST

 Please check your internet connection and network settings.

 Note: Claude Code might not be available in your country. Check supported countries at
 https://anthropic/supported-countries

所以得通过更改电脑中的设置来处理,要开启使用代理服务器

同时还要在加速器中使用TUN模式才能使得WSL的网络被成功代理。

8. Claude Code 初始化

(1)你要对你的项目使用Claude Code,所以需要先在WSL中进入你的项目目录,再启动Claude Code。

# 切换到你的 Spring Boot 项目目录
cd /mnt/d/your-project-folder

# 然后在项目目录中启动 Claude Code
claude

(2)然后使用 /init 命令让Claude Code扫描你的项目并生成CLAUDE.md 文件,后续Claude Code对于你项目的所有操作都会围绕这个来执行,所以很重要。

在Claude Code生成完这个文件之后,它会放在你项目的根目录下,你可以在记事本中对于这个文件按照你的意愿进行修改,你修改地越好,它能发挥地作用越大。

下面给出关于一个Java项目地一个CLAUDE.md 文件模板:

# CLAUDE.md

本文件为 Claude Code (claude.ai/code) 提供项目指导和开发规范。

## 项目概述

### 基本信息
- **项目名称**: [项目名称]
- **项目类型**: [Web应用 / API服务 / 微服务 / 桌面应用]
- **开发阶段**: [需求分析 / 开发中 / 测试 / 预发布 / 生产环境]
- **核心功能**: [核心业务功能描述]
- **目标用户**: [用户群体描述]

### 技术选型
- **后端框架**: Spring Boot [版本号] + Java [版本号]
- **数据库**: [MySQL / PostgreSQL / Oracle] [版本号]
- **ORM框架**: [MyBatis-Plus / JPA / Hibernate]
- **缓存技术**: [Redis / Caffeine / Hazelcast]
- **消息队列**: [RabbitMQ / Apache Kafka / RocketMQ]
- **安全框架**: [Spring Security / Shiro]
- **认证方式**: [JWT / Session / OAuth2]

### 外部服务集成
- **支付服务**: [微信支付 / 支付宝 / 银联]
- **文件存储**: [阿里云OSS / 腾讯云COS / MinIO]
- **短信服务**: [阿里云短信 / 腾讯云短信]
- **推送服务**: [个推 / 极光推送]
- **地图服务**: [高德地图 / 百度地图]
- **其他集成**: [具体说明]

## 开发环境配置

### 环境要求
```bash
# 开发工具版本
Java: [版本号]+
Maven: 3.6+
Node.js: [如果有前端项目]
Docker: [如果使用容器]

# 数据库和中间件
MySQL: [版本号]
Redis: [版本号] 
RabbitMQ: [版本号] (如果使用)
```

### 常用开发命令
```bash
# 编译和构建
mvn clean compile                    # 清理并编译
mvn clean package                    # 打包应用
mvn clean install                    # 安装到本地仓库

# 运行和调试
mvn spring-boot:run                  # 启动开发模式
mvn spring-boot:run -Dspring-boot.run.profiles=dev    # 指定配置文件启动
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"  # 调试模式

# 测试相关
mvn test                            # 运行所有测试
mvn test -Dtest=[TestClassName]     # 运行指定测试类
mvn test -Dtest=[TestClassName]#[methodName]  # 运行指定测试方法
mvn clean test jacoco:report        # 生成测试覆盖率报告

# 代码检查
mvn spotbugs:check                  # 静态代码检查
mvn checkstyle:check                # 代码规范检查
mvn dependency:analyze              # 依赖分析
```

### 数据库操作
- **数据库**: [数据库类型] on [主机]:[端口]/[数据库名]
- **数据迁移**: [Flyway / Liquibase / 手动执行]
- **ORM配置**: [具体ORM框架的配置说明]
- **连接池**: [HikariCP / Druid]

## 项目架构

### 整体架构模式
**[选择适用的架构]**: 
- 单体应用 (Monolithic)
- 分层架构 (Layered Architecture)
- 微服务架构 (Microservices)
- 六边形架构 (Hexagonal Architecture)
- CQRS + Event Sourcing

### 代码结构
```
com.[公司名].[项目名]/
├── config/          # 配置类
├── controller/      # 控制器层 - REST API
├── service/         # 服务层 - 业务逻辑
│   ├── impl/       # 服务实现类
│   └── dto/        # 数据传输对象
├── repository/      # 数据访问层
│   ├── mapper/     # MyBatis映射器
│   └── entity/     # 数据库实体
├── component/       # 组件类
├── util/           # 工具类
├── exception/      # 自定义异常
├── constant/       # 常量定义
├── enums/          # 枚举类
├── aspect/         # AOP切面
├── filter/         # 过滤器
├── interceptor/    # 拦截器
├── security/       # 安全相关
├── schedule/       # 定时任务
├── mq/            # 消息队列相关
│   ├── producer/  # 消息生产者
│   └── consumer/  # 消息消费者
└── vo/            # 视图对象
```

### 分层架构详解
**Controller层 → Service层 → Repository层 → Entity层**

**职责划分**:
- **Controller**: 参数校验、调用Service、返回结果
- **Service**: 业务逻辑处理、事务管理
- **Repository**: 数据访问、数据库操作
- **Entity**: 数据模型定义

### 消息队列架构 (如适用)
**使用场景**:
- [异步处理场景1]
- [异步处理场景2]
- [削峰填谷场景]
- [系统解耦场景]

**队列配置**:
- **[队列名1]**: [用途说明] - TTL: [时间], DLX: [是否配置]
- **[队列名2]**: [用途说明] - TTL: [时间], DLX: [是否配置]

**关键模式**:
- 消息确认机制: [manual / auto]
- 死信队列处理: [处理策略]
- 消息重试策略: [重试次数和间隔]

### 缓存架构 (如适用)
**缓存层级**:
- **L1缓存**: [本地缓存工具] - [容量], [TTL时间]
- **L2缓存**: [分布式缓存] - [配置说明]
- **数据库缓存**: [查询缓存配置]

**缓存策略**:
- **缓存更新**: [更新策略说明]
- **缓存穿透**: [防护措施]
- **缓存雪崩**: [防护措施]
- **缓存一致性**: [保证机制]

### 安全架构
**认证方式**: [JWT / Session / OAuth2等]
**授权机制**: [RBAC / ABAC等]
**安全过滤链**: [过滤器配置说明]
**加密算法**: [使用的加密方式]

### 数据库设计
**核心实体**: [实体1], [实体2], [实体3]...

**关键关系**:
- [实体A] 与 [实体B]: [关系类型] ([关系说明])
- [实体C] 与 [实体D]: [关系类型] ([关系说明])

**索引策略**: [重要索引说明]
**分库分表**: [如果适用,说明策略]

## 业务逻辑和流程

### 核心业务流程
**[业务流程1名称]**:
1. [步骤1]
2. [步骤2] 
3. [步骤3]

**[业务流程2名称]**:
1. [步骤1]
2. [步骤2]
3. [步骤3]

### 关键业务规则
- **[规则1]**: [具体说明]
- **[规则2]**: [具体说明]
- **[规则3]**: [具体说明]

### 用户角色权限
- **[角色1]**: [权限说明]
- **[角色2]**: [权限说明]
- **[角色3]**: [权限说明]

## 开发规范和约定

### 代码规范
**命名约定**:
- 类名: PascalCase (如: UserService)
- 方法名: camelCase (如: getUserById)
- 常量: UPPER_SNAKE_CASE (如: MAX_RETRY_COUNT)
- 包名: 全小写,多个单词用点分隔

**注释规范**:
- 类和公共方法必须有JavaDoc注释
- 业务逻辑复杂的代码块要有行内注释
- 使用中文注释,便于团队理解

**异常处理**:
- 业务异常继承自 [BusinessException]
- 系统异常使用 @ControllerAdvice 统一处理
- 错误码格式: [错误码规范说明]

### 日志规范
**日志级别使用**:
- ERROR: 系统异常、业务关键错误
- WARN: 业务异常、性能警告
- INFO: 关键业务操作记录
- DEBUG: 调试信息

**日志格式**: [日志格式说明]
**敏感信息**: 必须脱敏处理

### 数据库规范
**表命名**: [命名规范]
**字段命名**: [命名规范]
**索引命名**: [命名规范]

### API设计规范
**RESTful设计**:
- GET: 查询操作
- POST: 创建操作  
- PUT: 完整更新
- PATCH: 部分更新
- DELETE: 删除操作

**响应格式**:
```json
{
  "code": "状态码",
  "message": "描述信息", 
  "data": "返回数据",
  "timestamp": "时间戳"
}
```

## 性能优化策略

### 数据库优化
- **索引优化**: [具体策略]
- **查询优化**: [具体策略]
- **连接池配置**: [配置说明]

### 缓存优化
- **缓存预热**: [策略说明]
- **缓存更新**: [策略说明]
- **缓存监控**: [监控指标]

### JVM优化
- **内存配置**: [配置参数]
- **GC策略**: [GC选择和参数]
- **监控工具**: [使用的工具]

## 测试策略

### 测试分层
- **单元测试**: Service层业务逻辑测试
- **集成测试**: 数据库操作、外部服务集成测试
- **端到端测试**: 完整业务流程测试

### 测试工具
- **单元测试**: JUnit 5 + Mockito
- **集成测试**: SpringBootTest + TestContainers
- **性能测试**: [JMeter / Gatling]

### 测试数据
- **测试数据库**: [测试环境数据库配置]
- **Mock数据**: [Mock策略说明]
- **测试用例**: [重要测试场景]

## 部署和运维

### 环境配置
**开发环境**: [配置说明]
**测试环境**: [配置说明]  
**预发布环境**: [配置说明]
**生产环境**: [配置说明]

### 部署流程
```bash
# 构建部署包
mvn clean package -P[profile]

# Docker部署 (如适用)
docker build -t [image-name] .
docker run -p [port] [image-name]

# 传统部署
java -jar -Dspring.profiles.active=[profile] target/[jar-name].jar
```

### 监控和日志
**应用监控**: [监控工具和指标]
**日志收集**: [日志收集方案]
**性能监控**: [性能监控方案]
**报警配置**: [报警策略]

## Claude Code 使用偏好

### 代码生成偏好
- 生成代码包含完整的中文注释
- 异常处理要完整,包含业务异常和系统异常
- 日志记录要详细,使用 @Slf4j
- 参数校验要严格,使用 @Valid 注解
- 返回结果统一使用项目定义的响应格式

### 代码分析偏好
- 重点关注性能优化机会
- 检查潜在的安全漏洞
- 分析代码重复性,提供重构建议
- 关注异步处理和并发安全
- 数据库查询性能分析

### 重构偏好
- 提取公共方法和工具类
- 优化复杂的条件判断逻辑
- 改进异常处理机制
- 优化数据库查询和缓存使用
- 改进代码可读性和维护性

## 项目状态和计划

### 当前开发状态
**已完成功能**:
- [功能1]
- [功能2]  
- [功能3]

**开发中功能**:
- [功能4] - [预计完成时间]
- [功能5] - [预计完成时间]

**计划开发功能**:
- [功能6] - [计划开始时间]
- [功能7] - [计划开始时间]

### 已知问题和技术债务
- **[问题1]**: [问题描述] - 优先级: [高/中/低]
- **[问题2]**: [问题描述] - 优先级: [高/中/低]
- **[技术债务1]**: [债务描述] - 计划解决时间: [时间]

### 性能指标目标
- **响应时间**: [目标值]
- **并发用户数**: [目标值]
- **数据库连接数**: [目标值]
- **内存使用**: [目标值]

---

**文档维护**: 本文档应该随着项目发展定期更新,建议每周或每个迭代结束后进行更新。

这是一个完整的架构模板,包含了:

  • 📋 项目基本信息配置
  • 🏗️ 完整的技术栈选项
  • 📁 标准的代码结构
  • 🔄 各种架构模式说明
  • 📝 开发规范和约定
  • 🧪 测试和部署策略
  • 🤖 Claude Code 使用偏好

可以根据自己的项目需求,只需要修改对应的板块内容即可。

(3)先在IDEA中下载 Claude Code 的插件,然后再在 Claude Code 中使用 /ide 命令去将IDEA和你的Claude Code进行连接。

Claude Code + IntelliJ IDEA 集成使用

  • 代码分析和建议
# 在 Claude Code 中
"分析这个 Controller 类的设计问题"
"这个 Service 方法的性能可以怎么优化?"
"帮我重构这个 Repository 层的代码"
  • 直接编辑文件
# Claude 可以直接修改你的 Java 文件
"帮我在 UserController.java 中添加一个分页查询接口"
"修改 SecurityConfig.java 添加 JWT 认证配置"
  • 生成代码模板
# 生成完整的类文件
"根据数据库表结构生成 User 实体类"
"创建一个标准的 Spring Boot 异常处理器"

实际工作流程

  1. IDEA 中编写代码 → 遇到问题

  2. 切换到 Claude Code → 描述问题或需求

  3. Claude 提供解决方案 → 可能直接修改文件

  4. 回到 IDEA → 查看修改结果,继续开发

上面的初始化部分,对于一个项目目录文件夹,进行一次即可。 

9. 具体使用细节 

(1)使用 /compact 指令清理上下文但保留关键内容

每次使用claude命令进入 Claude Code 的界面,都是一次对话的开启,如果一整天都使用一个上下文,上下文就会臃肿,导致 Claude Code 的处理能力变弱,所以在对话过长之后,要么重新开启一个对话,要么就用/compact 指令清理上下文。

/compact
# 或者带自定义指令
/compact "请保留关于数据库设计的讨论,其他可以简化"

(2)使用/clear指令完全清除对话历史

/clear
  • 彻底清空所有对话记录
  • 释放内存和上下文空间
  • 重新开始一个"干净"的对话

本文标签: WindowsclaudeCode