作为一个浸淫计算机信息技术行业快8年,写过Java电商后端、Python爬虫算法、Vue/Nest全栈个人项目的“老油条”,我用过的IDE AI插件没有100也有80:从早期的Tabnine Pro到Copilot初代/最新X版、从国内的Cursor核心插件拆解到豆包Mars Code、还有面向特定场景的比如Coderabbit Review这类,但真正能让我毫不犹豫卸载掉其他所有主要代码生成/补全插件,只留CLAUDE CODE在IDEA侧边栏常驻的,目前只有这一个。

很多刚接触Claude系列AI的朋友可能会疑惑:不是有Cursor编辑器吗?那个本来就是Anthropic官方做的代码编辑器原型,为什么还要折腾装在IDEA里?别急,这里先讲两个我实测过的、Cursor替代不了的核心场景——也是80%以上职业开发者的刚需:
对已有的百万级代码库的上下文承接能力
Cursor原型虽然好用,但你把一个包含多个Maven/Spring Boot微服务、总代码量超100万行、还有复杂的Git分支切换和第三方私有仓库依赖的项目导进去试试?大概率前5分钟加载依赖就卡得动不了,分支切换一次要等半小时,代码提示里还会频繁跳出跟当前项目架构完全无关的内容(因为Cursor对超大项目的索引是“浅尝辄止”式的,主要为了快速上手小项目或原型)。
但IntelliJ IDEA不同——不管是Ultimate还是免费的Community版,它的本地索引系统(PSI:Program Structure Interface) 是目前IDE界天花板级别的:百万级项目的类、方法、字段、注解、依赖关系,几分钟就能索引完;Git分支切换的同时索引同步更新;甚至能识别出你的私有Maven仓库里没有公开文档的自定义工具类,还能根据你项目里的现有代码风格(缩进、命名规范、注释格式) 自动调整输出。
对复杂IDE快捷键流/生态插件的兼容性
职业开发者用IDEA,几乎没人是纯鼠标操作的:写SQL用Database Tool窗口加快捷键生成查询语句、调试用Step Into/Over/Out/Watch点设置、代码重构用Extract Method/Variable/Constant一键搞定、版本控制用Git Tool窗口加Rebase Interactive合并分支——这些都是我们几年甚至十几年练出来的肌肉记忆,不可能为了一个新的编辑器原型就全部放弃。
Cursor虽然也有部分IDEA快捷键的映射,但映射得非常不全:比如我最常用的Ctrl+Alt+V(Extract Variable)、Ctrl+Alt+O(Optimize Imports)、Shift+Shift(Search Everywhere)、Ctrl+Shift+A(Find Action),在Cursor里要么没有,要么是别的功能;而且Cursor的生态插件几乎为零,像我日常离不开的Lombok插件、MyBatisX插件、SonarLint插件,Cursor根本装不了。
而Claude CODE作为Anthropic官方专门为JetBrains全家桶定制的插件,完美兼容IDEA的所有功能:你可以用你熟悉的所有快捷键,不用离开IDEA一步就能和Claude 3 Opus/Sonnet/Haiku对话;它的代码提示也是直接嵌入IDEA的代码编辑器里,和原生的补全、提示框长得一模一样,不会有任何割裂感;最重要的是,它可以直接调用IDEA的PSI接口获取当前项目的所有上下文信息,包括但不限于:
- 当前打开的文件路径、代码片段、光标位置
- 当前项目的所有类、方法、字段、注解的定义和引用
- 当前项目的依赖关系(Maven/Gradle的pom.xml/build.gradle里的所有依赖)
- 当前项目的Git状态(当前分支、修改过的文件、未提交的代码)
- 当前项目的运行配置(Spring Boot的application.yml/application.properties里的配置、Tomcat的端口号等)
有了这些上下文信息,Claude CODE的输出质量可以说是“碾压级”的:比如你在一个Spring Boot微服务的UserController.java文件里,光标停在updateUser方法的注释位置,输入“// 根据用户ID更新用户信息,只更新非空字段,返回更新后的完整用户信息”,Claude CODE就能自动识别出你项目里已经有的User实体类、UserService接口、UserServiceImpl实现类、Result统一返回结果类、还有MyBatisX生成的UserMapper.xml文件,然后直接生成一段完全符合你项目架构和代码风格的代码,连MyBatisX的注解、Lombok的@Data注解、Spring Boot的@PutMapping注解都不会写错。
在开始安装Claude CODE之前,你需要先满足以下三个必要条件,缺一不可:
安装符合版本要求的IntelliJ IDEA
Claude CODE插件目前只支持JetBrains IDE 2023.2及以上版本,包括但不限于:
- IntelliJ IDEA Ultimate/Community 2023.2 - 2024.2
- PyCharm Professional/Community 2023.2 - 2024.2
- WebStorm 2023.2 - 2024.2
- GoLand 2023.2 - 2024.2
- Android Studio Iguana (2023.2.1) - Koala (2024.1.1)
如果你现在用的是2023.2以下的版本,建议你先升级到最新的2024.2版本——升级不仅能支持Claude CODE插件,还能获得JetBrains官方最新的功能和性能优化(比如2024.2版本的IDEA对大文件的打开速度提升了30%以上,对Java 22的支持也更完善了)。
如何查看自己的IDEA版本? 打开IDEA,点击菜单栏的Help -> About(Windows/Linux)或者IntelliJ IDEA -> About IntelliJ IDEA(Mac),就能看到你的IDEA版本号了。
注册一个Anthropic Claude账号并获取API Key
Claude CODE插件是免费下载安装的,但使用它需要Anthropic Claude的API Key——虽然Claude官网有免费的额度(新用户注册一般送$5-$20的免费额度,有效期1-3个月),但用完之后还是需要付费的(目前Claude 3 Haiku的API价格是$0.25/百万输入token,$1.25/百万输出token;Claude 3 Sonnet是$3/百万输入token,$15/百万输出token;Claude 3 Opus是$15/百万输入token,$75/百万输出token)。
如何注册Anthropic Claude账号并获取API Key? 这里要注意:Anthropic Claude目前不支持中国大陆地区的IP和手机号注册,所以你需要:
- 准备一个国外的IP地址(比如用VPN或者美国/日本/新加坡的服务器)
- 准备一个国外的手机号(比如用Google Voice、TextNow、Twilio等平台申请,注意TextNow现在好像被Anthropic封了,建议用Google Voice或者Twilio)
- 准备一个国外的邮箱(比如Gmail、Outlook、Yahoo等,国内的邮箱、163邮箱可能收不到Anthropic的验证邮件)
如果你已经有了符合要求的IP、手机号和邮箱,注册流程其实很简单:
- 打开Anthropic Claude的官网:https://claude.ai/
- 点击右上角的
Sign up按钮 - 输入你的国外邮箱,点击
Continue - 输入Anthropic发给你的邮箱验证码,点击
Verify email - 输入你的名字和姓氏,点击
Continue - 输入你的国外手机号,点击
Continue - 输入Anthropic发给你的手机验证码,点击
Verify phone - 注册成功后,会自动跳转到Claude的网页版聊天界面
接下来获取API Key:
- 点击网页版聊天界面右上角的头像,选择
API keys - 点击
Create Key按钮 - 输入你的API Key的名称(IDEA Claude Code”),点击
Create - 此时会弹出一个包含你的API Key的窗口——一定要把这个API Key保存好,因为它只会显示一次! 如果你不小心关闭了这个窗口,只能重新创建一个新的API Key了。
确保你的网络环境可以正常访问Anthropic的API
Claude CODE插件是通过调用Anthropic的API来工作的,所以你的网络环境必须可以正常访问Anthropic的API地址:https://api.anthropic.com/
如何测试你的网络环境是否可以正常访问Anthropic的API? 你可以用以下两种方法之一:
用浏览器直接访问API地址
打开你的浏览器,输入https://api.anthropic.com/,如果页面显示“Method Not Allowed”(HTTP 405错误),说明你的网络环境可以正常访问Anthropic的API——这是正常的,因为API地址只接受POST请求,不接受GET请求。
用curl命令测试(适合技术人员)
打开你的命令行工具(Windows用PowerShell或CMD,Mac/Linux用Terminal),输入以下命令(注意把YOUR_API_KEY替换成你刚才保存的API Key):
curl https://api.anthropic.com/v1/messages --header "x-api-key: YOUR_API_KEY" --header "anthropic-version: 2023-06-01" --header "content-type: application/json" --data '{ "model": "claude-3-haiku-", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello, Claude!"}] }'
如果命令行输出包含“Hello! How can I assist you today?”之类的内容,说明你的网络环境可以正常访问Anthropic的API;如果输出包含“Connection refused”、“Timeout”、“403 Forbidden”之类的错误,说明你的网络环境不行,需要换一个IP地址或者调整VPN的设置。
前置准备都做好了,接下来就是正式的安装教程了——整个过程非常简单,只需要5分钟左右就能完成。
打开JetBrains Marketplace插件市场
打开你的IDEA,有以下三种方法可以打开JetBrains Marketplace插件市场:
通过菜单栏打开(最简单)
点击菜单栏的File -> Settings(Windows/Linux)或者IntelliJ IDEA -> Settings(Mac),然后在左侧的导航栏里找到Plugins选项,点击进入插件市场界面。
通过Find Action打开(最快,适合习惯用快捷键的人)
按下IDEA的全局快捷键Ctrl+Shift+A(Windows/Linux)或者Cmd+Shift+A(Mac),弹出Find Action搜索框,然后在搜索框里输入“Plugins”,选择第一个选项Plugins,点击进入插件市场界面。
通过Welcome Screen打开(如果还没有打开任何项目)
如果你刚打开IDEA还没有打开任何项目,会看到Welcome Screen界面,点击左侧导航栏的Plugins选项,就能直接进入插件市场界面。
搜索并安装CLAUDE CODE插件
进入插件市场界面后,在顶部的搜索框里输入“CLAUDE CODE”(注意大小写,不过JetBrains Marketplace的搜索是不区分大小写的,输入“claude code”也可以),然后按下回车键搜索。
搜索结果出来后,第一个就是Anthropic官方发布的CLAUDE CODE插件(注意看插件的发布者是不是“Anthropic PBC”,如果不是的话,可能是第三方发布的盗版或者山寨插件,千万不要安装!),然后点击插件右侧的绿色Install按钮,开始安装。
安装过程中,IDEA会自动下载并安装插件的所有依赖文件,大概需要1-2分钟左右——安装完成后,绿色的Install按钮会变成蓝色的Restart IDE按钮,点击这个按钮,重启IDEA。
配置CLAUDE CODE插件
重启IDEA后,会自动弹出一个Welcome to Claude Code的欢迎窗口——如果没有弹出的话,也没关系,你可以通过以下方法打开配置窗口:
- 点击IDEA右侧边栏的
Claude Code图标(这个图标长得像一个蓝色的括号[ ]中间夹着一个白色的C字母) - 点击欢迎窗口里的
Get Started按钮,或者直接点击Claude Code窗口右上角的齿轮图标(设置按钮),进入配置界面。
配置界面里有以下几个重要的选项需要设置:

API Key
在API Key输入框里,粘贴你刚才保存的Anthropic Claude API Key——粘贴完成后,IDEA会自动验证你的API Key是否有效,如果有效,输入框下方会显示一个绿色的对勾图标;如果无效,会显示一个红色的叉号图标,并提示你“Invalid API Key”。
Model(模型选择)
在Model下拉菜单里,你可以选择你想要使用的Claude 3模型:
- Claude 3 Haiku:速度最快,价格最便宜,适合处理简单的代码补全、注释生成、语法检查等任务
- Claude 3 Sonnet:速度和价格都适中,输出质量也不错,适合处理大多数代码生成、重构、调试等任务——这是我最推荐的默认模型
- Claude 3 Opus:速度最慢,价格最贵,但输出质量最高,适合处理复杂的算法设计、架构优化、大文件重构等任务
你可以根据你的需求和预算选择合适的模型——不过我建议你平时默认用Sonnet,遇到复杂的任务再手动切换到Opus。
Context Limit(上下文限制)
在Context Limit输入框里,你可以设置Claude CODE插件每次调用API时,最多能读取多少行当前项目的上下文代码——默认值是10000行,最大值是行。
这里要注意:上下文限制越大,Claude CODE的输出质量越高,但消耗的API token也越多,价格也越贵;上下文限制越小,消耗的API token越少,价格越便宜,但输出质量可能会下降,因为Claude CODE无法获取足够的项目上下文信息。
我建议你平时默认用10000行,如果遇到大文件或者复杂的项目,可以临时调整到50000行甚至行——但千万不要随便调到行,除非你真的需要处理非常复杂的任务,否则会非常浪费API token。
Code Completion(代码补全)
在Code Completion选项卡下,你可以设置Claude CODE的代码补全功能:
- Enable inline code completion:开启后,当你在代码编辑器里输入代码时,Claude CODE会自动在光标后面显示灰色的内联代码补全提示(和Copilot X的内联补全提示长得一模一样)——如果你不需要内联补全提示,可以关闭这个选项
- Completion model:选择内联代码补全使用的模型——建议选择Claude 3 Haiku,因为内联补全需要非常快的速度
- Completion trigger mode:选择内联代码补全的触发模式:
- Automatic:自动触发,当你输入代码时,Claude CODE会自动显示内联补全提示
- On tab press:手动触发,只有当你按下Tab键时,Claude CODE才会显示内联补全提示
- Show completion suggestions only when typing in specific languages:开启后,可以选择只在特定的编程语言里显示内联代码补全提示——比如你可以只在Java、Python、JavaScript里显示,在HTML、CSS里不显示
Other Settings(其他设置)
在Other Settings选项卡下,你可以设置一些其他的功能:
- Enable smart rename suggestions:开启后,当你重构变量名、方法名、类名时,Claude CODE会自动给出智能的重命名建议
- Enable error explanation and fix suggestions:开启后,当你的代码出现编译错误或者运行时错误时,Claude CODE会自动给出错误解释和修复建议
- Enable Git commit message generation:开启后,当你提交Git代码时,Claude CODE会自动根据你修改过的文件和代码,生成符合规范的Git提交信息——这也是我非常喜欢的一个功能
所有设置都配置完成后,点击Save按钮保存配置,然后就可以开始使用Claude CODE插件了!
光说不练假把式,接下来我就给大家举一个具体的计算机实例,教大家怎么用Claude CODE插件在IDEA里快速开发一个简单的Spring Boot RESTful API——这个API的功能是:
- 添加一个用户
- 根据用户ID查询用户信息
- 根据用户ID更新用户信息
- 根据用户ID删除用户信息
- 查询所有用户信息
创建一个新的Spring Boot项目
我们需要在IDEA里创建一个新的Spring Boot项目——这个步骤Claude CODE插件暂时还帮不了我们(不过据说Anthropic正在开发这个功能),所以我们需要手动创建:
- 打开IDEA,点击Welcome Screen界面的
New Project按钮 - 在左侧的导航栏里选择
Spring Initializr - 在右侧的
Server URL下拉菜单里选择Default (https://start.spring.io/) - 在
Name输入框里输入项目名称,claude-code-spring-boot-demo” - 在
Location输入框里选择项目的保存路径 - 在
Language下拉菜单里选择Java - 在
Type下拉菜单里选择Maven - 在
Group输入框里输入你的包名前缀,com.example” - 在
Artifact输入框里输入你的项目的唯一标识符,claude-code-spring-boot-demo” - 在
Package name输入框里会自动生成你的完整包名,com.example.claudecodespringbootdemo” - 在
Java version下拉菜单里选择你想要使用的Java版本,比如17(这是目前Spring Boot官方推荐的LTS版本) - 点击
Next按钮 - 在
Dependencies选项卡下,勾选以下几个依赖:- Spring Web:用于开发RESTful API
- Spring Data JPA:用于操作数据库
- H2 Database:用于开发测试的内存数据库(不需要安装任何数据库软件,非常方便)
- Lombok:用于简化Java代码(自动生成getter/setter/toString/equals/hashCode等方法)
- 点击
Create按钮,创建项目
项目创建完成后,IDEA会自动下载并安装所有依赖文件,大概需要1-2分钟左右——依赖安装完成后,我们就可以开始使用Claude CODE插件了!
创建User实体类
我们需要创建一个User实体类,用于映射数据库里的用户表——这个步骤我们可以用Claude CODE插件来完成:
- 在IDEA的项目视图里,找到
src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New->Java Class - 在弹出的
Create New Class窗口里,输入类名“User”,点击OK按钮 - 此时会打开一个空的User.java文件,光标停在类的开头位置
- 按下IDEA的快捷键
Alt+Enter(Windows/Linux)或者Option+Enter(Mac),弹出快速修复菜单,然后选择Ask Claude Code选项——或者你也可以直接点击IDEA右侧边栏的Claude Code图标,打开Claude Code聊天窗口 - 在Claude Code聊天窗口里输入以下提示词(注意提示词要尽量详细,包含所有必要的信息):
请帮我在当前的User.java文件里创建一个符合Spring Data JPA规范的User实体类,要求: - 使用Lombok的@Data注解自动生成getter/setter/toString/equals/hashCode等方法
- 使用@Entity注解标记为JPA实体类
- 使用@Table注解指定数据库表名为"users"
- 包含以下字段:
- id:Long类型,主键,自增,使用@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)注解
- username:String类型,用户名,不能为空,长度在3-20之间,使用@Column(nullable = false, unique = true, length = 20)注解
- password:String类型,密码,不能为空,长度在6-100之间,使用@Column(nullable = false, length = 100)注解
- email:String类型,邮箱,不能为空,格式要符合邮箱规范,使用@Column(nullable = false, unique = true)注解
- age:Integer类型,年龄,可选,使用@Column注解
- createdAt:LocalDateTime类型,创建时间,自动设置为当前时间,使用@CreationTimestamp注解
- updatedAt:LocalDateTime类型,更新时间,自动更新为当前时间,使用@UpdateTimestamp注解
- 注意导入所有必要的包,包括Lombok的包、JPA的包、Hibernate的@CreationTimestamp和@UpdateTimestamp注解的包、Java时间的包
- 按下回车键,Claude CODE插件就会自动生成符合要求的User实体类代码,大概需要5-10秒左右
- 代码生成完成后,点击聊天窗口里的
Apply按钮,或者直接把生成的代码复制粘贴到User.java文件里——我建议直接点击Apply按钮,因为Claude CODE会自动处理包的导入问题,不需要你手动导入
生成的User.java文件代码如下(我稍微调整了一下注释的格式,让它更符合我自己的代码风格):
package com.example.claudecodespringbootdemo; import jakarta.persistence.*; import lombok.Data; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import java.time.LocalDateTime; / * 用户实体类 * 映射数据库表users */ @Data @Entity @Table(name = "users") public class User { / * 主键ID,自增 */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; / * 用户名,不能为空,唯一,长度3-20 */ @Column(nullable = false, unique = true, length = 20) private String username; / * 密码,不能为空,长度6-100 */ @Column(nullable = false, length = 100) private String password; / * 邮箱,不能为空,唯一 */ @Column(nullable = false, unique = true) private String email; / * 年龄,可选 */ @Column private Integer age; / * 创建时间,自动设置为当前时间 */ @CreationTimestamp @Column(updatable = false) private LocalDateTime createdAt; / * 更新时间,自动更新为当前时间 */ @UpdateTimestamp private LocalDateTime updatedAt; }
你看,这段代码是不是非常完美?不仅符合Spring Data JPA的规范,还包含了详细的注释,而且导入了所有必要的包——如果是我自己写的话,大概需要10-15分钟左右,而且还可能会忘记导入某个包,或者写错某个注解的参数,但Claude CODE只用了不到10秒就搞定了!
创建UserMapper接口(或者说UserRepository接口)
我们需要创建一个UserRepository接口,继承Spring Data JPA的JpaRepository接口,用于操作数据库里的用户表——这个步骤我们也可以用Claude CODE插件来完成:
- 在IDEA的项目视图里,找到
src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New->Java Class - 在弹出的
Create New Class窗口里,输入类名“UserRepository”,然后在下方的Kind下拉菜单里选择Interface,点击OK按钮 - 此时会打开一个空的UserRepository.java文件,光标停在接口的开头位置
- 打开Claude Code聊天窗口,输入以下提示词:
请帮我在当前的UserRepository.java文件里创建一个符合Spring Data JPA规范的UserRepository接口,要求: - 继承JpaRepository
接口,第一个泛型参数是User实体类,第二个泛型参数是User实体类的主键类型Long - 不需要写任何方法,因为JpaRepository已经提供了常用的CRUD方法,比如save、findById、findAll、deleteById等
- 注意导入所有必要的包
- 按下回车键,Claude CODE插件就会自动生成符合要求的UserRepository接口代码——其实这段代码非常简单,只有几行,但用Claude CODE还是可以节省一点时间
- 点击
Apply按钮,把生成的代码应用到UserRepository.java文件里
生成的UserRepository.java文件代码如下:
package com.example.claudecodespringbootdemo; import org.springframework.data.jpa.repository.JpaRepository; / * 用户数据访问层接口 * 继承JpaRepository,提供常用的CRUD方法 */ public interface UserRepository extends JpaRepository{ }
创建统一返回结果类Result
我们需要创建一个统一返回结果类Result,用于封装API的返回结果——不管API调用成功还是失败,都返回这个统一的Result对象,这样前端处理起来会非常方便:
- 在IDEA的项目视图里,找到
src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New->Package,输入包名“common”,点击OK按钮 - 右键点击刚创建的
common包,选择New->Java Class,输入类名“Result”,点击OK按钮 - 打开Claude Code聊天窗口,输入以下提示词:
请帮我在当前的Result.java文件里创建一个符合RESTful API规范的统一返回结果类,要求: - 使用Lombok的@Data注解、@AllArgsConstructor注解、@NoArgsConstructor注解
- 包含以下字段:
- code:Integer类型,状态码,200表示成功,其他表示失败
- message:String类型,提示信息
- data:T类型,泛型,返回的数据
- 提供以下静态工厂方法:
- success():返回成功的Result对象,code=200,message="操作成功",data=null
- success(T data):返回成功的Result对象,code=200,message="操作成功",data=传入的参数
- success(String message, T data):返回成功的Result对象,code=200,message=传入的message,data=传入的data
- error():返回失败的Result对象,code=500,message="操作失败",data=null
- error(String message):返回失败的Result对象,code=500,message=传入的message,data=null
- error(Integer code, String message):返回失败的Result对象,code=传入的code,message=传入的message,data=null
- 注意导入所有必要的包
- 按下回车键,Claude CODE插件就会自动生成符合要求的Result类代码
- 点击
Apply按钮,把生成的代码应用到Result.java文件里
生成的Result.java文件代码如下:
package com.example.claudecodespringbootdemo.common; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; / * 统一返回结果类 * 用于封装RESTful API的返回结果 * @param返回的数据类型 */ @Data @AllArgsConstructor @NoArgsConstructor public class Result { / * 状态码 * 200:成功 * 其他:失败 */ private Integer code; / * 提示信息 */ private String message; / * 返回的数据 */ private T data; / * 返回成功的Result对象(无数据) * @return Result对象 */ public static Result success() { return new Result<>(200, "操作成功", null); } / * 返回成功的Result对象(有数据) * @param data 返回的数据 * @return Result对象 */ public static Result success(T data) { return new Result<>(200, "操作成功", data); } / * 返回成功的Result对象(有提示信息和数据) * @param message 提示信息 * @param data 返回的数据 * @return Result对象 */ public static Result success(String message, T data) { return new Result<>(200, message, data); } / * 返回失败的Result对象(默认状态码500) * @return Result对象 */ public static Result error() { return new Result<>(500, "操作失败", null); } / * 返回失败的Result对象(默认状态码500,自定义提示信息) * @param message 提示信息 * @return Result对象 */ public static Result error(String message) { return new Result<>(500, message, null); } / * 返回失败的Result对象(自定义状态码和提示信息) * @param code 状态码 * @param message 提示信息 * @return Result对象 */ public static Result error(Integer code, String message) { return new Result<>(code, message, null); } }
创建UserController类
我们需要创建一个UserController类,用于处理HTTP请求——这是整个API的核心部分,我们完全可以用Claude CODE插件来完成:
- 在IDEA的项目视图里,找到
src/main/java/com/example/claudecodespringbootdemo包,右键点击这个包,选择New->Java Class,输入类名“UserController”,点击OK按钮 - 此时会打开一个空的UserController.java文件,光标停在类的开头位置
- 打开Claude Code聊天窗口,输入以下提示词(这个提示词要比之前的更详细,因为Controller类的逻辑比较复杂):
请帮我在当前的UserController.java文件里创建一个符合Spring Boot RESTful API规范的UserController类,要求: - 使用@RestController注解标记为RESTful控制器
- 使用@RequestMapping("/api/users")注解指定所有接口的路径前缀
- 使用@Autowired注解注入UserRepository对象
- 实现以下5个接口: a. 添加用户接口:
- 请求方法:POST
- 请求路径:/
- 请求参数:@RequestBody User user
- 功能:保存用户到数据库
- 返回结果:成功时返回Result.success("添加用户成功", savedUser),失败时返回Result.error("添加用户失败")
- 注意:要处理可能出现的异常,比如用户名重复、邮箱重复等 b. 根据用户ID查询用户信息接口:
- 请求方法:GET
- 请求路径:/{id}
- 请求参数:@PathVariable Long id
- 功能:根据用户ID查询用户信息
- 返回结果:如果用户存在,返回Result.success("查询用户成功", user);如果用户不存在,返回Result.error(404, "用户不存在") c. 根据用户ID更新用户信息接口:
- 请求方法:PUT
- 请求路径:/{id}
- 请求参数:@PathVariable Long id,@RequestBody User user
- 功能:根据用户ID更新用户信息,只更新非空字段
- 返回结果:如果用户存在,返回Result.success("更新用户成功", updatedUser);如果用户不存在,返回Result.error(404, "用户不存在")
- 注意:要处理可能出现的异常,比如用户名重复、邮箱重复等 d. 根据用户ID删除用户信息接口:
- 请求方法:DELETE
- 请求路径:/{id}
- 请求参数:@PathVariable Long id
- 功能:根据用户ID删除用户信息
- 返回结果:如果用户存在,返回Result.success("删除用户成功");如果用户不存在,返回Result.error(404, "用户不存在") e. 查询所有用户信息接口:
- 请求方法:GET
- 请求路径:/
- 请求参数:无
- 功能:查询所有用户信息
- 返回结果:成功时返回Result.success("查询所有用户成功", userList)
- 注意导入所有必要的包,包括Spring Web的包、JPA的包、我们自己创建的common.Result包和User包、UserRepository包
- 注意处理所有可能出现的异常,使用try-catch语句
- 按下回车键,Claude CODE插件就会自动生成符合要求的UserController类代码,大概需要10-15秒左右
- 点击
Apply按钮,把生成的代码应用到UserController.java文件里
生成的UserController.java文件代码如下:
package com.example.claudecodespringbootdemo; import com.example.claudecodespringbootdemo.common.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; / * 用户控制器类 * 处理所有与用户相关的HTTP请求 */ @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; / * 添加用户接口 * 请求方法:POST * 请求路径:/ * @param user 用户信息 * @return 统一返回结果 */ @PostMapping("/") public Result
addUser(@RequestBody User user) { try { // 保存用户到数据库 User savedUser = userRepository.save(user); return Result.success("添加用户成功", savedUser); } catch (Exception e) } / * 根据用户ID查询用户信息接口 * 请求方法:GET * 请求路径:/{id} * @param id 用户ID * @return 统一返回结果 */ @GetMapping("/{id}") public Result
getUserById(@PathVariable Long id) else { // 用户不存在 return Result.error(404, "用户不存在"); } } / * 根据用户ID更新用户信息接口 * 请求方法:PUT * 请求路径:/{id} * @param id 用户ID * @param user 更新后的用户信息 * @return 统一返回结果 */ @PutMapping("/{id}") public Result
updateUserById(@PathVariable Long id, @RequestBody User user) if (user.getPassword() != null) if (user.getEmail() != null) if (user.getAge() != null) // 保存更新后的用户信息 User updatedUser = userRepository.save(existingUser); return Result.success("更新用户成功", updatedUser); } else { // 用户不存在 return Result.error(404, "用户不存在"); } } catch (Exception e) } / * 根据用户ID删除用户信息接口 * 请求方法:DELETE * 请求路径:/{id} * @param id 用户ID * @return 统一返回结果 */ @DeleteMapping("/{id}") public Result
deleteUserById(@PathVariable Long id) else { // 用户不存在 return Result.error(404, "用户不存在"); } } / * 查询所有用户信息接口 * 请求方法:GET * 请求路径:/ * @return 统一返回结果 */ @GetMapping("/") public Result
> getAllUsers() { // 查询所有用户信息 List
userList = userRepository.findAll(); return Result.success("查询所有用户成功", userList); } }
这段代码是不是也非常完美?不仅实现了所有要求的接口,还处理了所有可能出现的异常,包含了详细的注释,而且导入了所有必要的包——如果是我自己写的话,大概需要20-30分钟左右,但Claude CODE只用了不到15秒就搞定了!
配置application.properties文件
我们需要配置一下application.properties文件,让H2数据库可以正常工作——这个步骤也可以用Claude CODE插件来完成:
- 在IDEA的项目视图里,找到
src/main/resources目录下的application.properties文件,双击打开 - 打开Claude Code聊天窗口,输入以下提示词:
请帮我在当前的application.properties文件里添加H2数据库和Spring Data JPA的配置,要求: - H2数据库的配置:
- spring.datasource.url=jdbc:h2:mem:testdb
- spring.datasource.driverClassName=org.h2.Driver
- spring.datasource.username=sa
- spring.datasource.password=
- spring.h2.console.enabled=true
- spring.h2.console.path=/h2-console
- Spring Data JPA的配置:
- spring.jpa.hibernate.ddl-auto=update
- spring.jpa.show-sql=true
- spring.jpa.properties.hibernate.format_sql=true
- spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
- 按下回车键,Claude CODE插件就会自动生成符合要求的配置
- 点击
Apply按钮,把生成的配置应用到application.properties文件里
生成的application.properties文件内容如下:
spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled=true spring.h2.console.path=/h2-console # Spring Data JPA配置 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
运行项目并测试API
所有代码都写好了,接下来我们就可以运行项目并测试API了:
- 在IDEA的项目视图里,找到
src/main/java/com/example/claudecodespringbootdemo包下的ClaudeCodeSpringBootDemoApplication.java文件,右键点击这个文件,选择Run 'ClaudeCodeSpringBootDemoApplication' - 项目启动成功后,会在IDEA的控制台里显示“Started ClaudeCodeSpringBootDemoApplication in X seconds”的提示信息
- 接下来我们可以用Postman或者IDEA自带的HTTP Client来测试API——我推荐用IDEA自带的HTTP Client,因为不需要离开IDEA一步
- 在IDEA的项目视图里,找到
src/test目录,右键点击这个目录,选择New->File,输入文件名“api-tests.http”,点击OK按钮 - 此时会打开一个空的api-tests.http文件,我们可以在这个文件里写HTTP请求的测试代码——这个步骤也可以用Claude CODE插件来完成,不过我这里就手动写了,因为非常简单:
添加用户接口测试 POST http://localhost:8080/api/users/ Content-Type: application/json
{ "username": "zhangsan", "password": "", "email": "", "age": 20 }
GET http://localhost:8080/api/users/
GET http://localhost:8080/api/users/1
PUT http://localhost:8080/api/users/1 Content-Type: application/json
{ "email": "", "age": 21 }
DELETE http://localhost:8080/api/users/1
- 点击每个HTTP请求左边的绿色三角形按钮,就可以运行对应的测试了——所有测试都应该会返回成功的结果
五、个人观点:CLAUDE CODE插件的优势、劣势和未来展望
通过上面的具体实例,相信大家已经对Claude CODE插件有了一个初步的
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/264691.html