当前位置: 首页 > article >正文

cursor使用经验分享(java后端服务开发向)

前言

cursor是一款基于vscode,并集成AI能力的代码编辑器,其功能包括但不限于代码生成及补全、AI对话(能够直接将代码环境作为上下文)、即时应用建议等等,是一款面向未来的代码编辑器。

对于vscode,最先想到的一定是他是一款web前端开发的代码编辑器,作为java开发,则应该使用idea。这种想法其实是错误的,虽然vscode广泛用于前端开发,idea广泛用于后端开发,但两者的区别绝不是开发不同的语言的区别。

  • vscode是一款更加轻量级的编辑器,所以其本身功能并不如idea强大,但其扩展性强,插件生态异常活跃,对于想要开发插件的开发者异常友好,这也是vscode本身能够经过一定改变,无痛升级到cursor的根本。
  • idea是一款功能强大的编辑器,但应用整体极重,这也直接导致idea的可扩展性一般,很难衍生出像cursor一样的产品。虽然idea页支持插件,但其插件生态相对封闭,许多高级功能需要通过 JetBrains 自己的团队来实现。这种模式虽然让idea的功能质量极高,但也限制了idea的插件社区创新速度。

正题

废话说完,进入正题。随着cursor的出现,AI编码已经落实到了程序员的实际工作,熟练使用cursor变成已经成为了提高开发效率的必备能力,那么作为后端,我们本不熟悉vscode,该如何使用cursor进行后端开发呢?

1. cursor的下载安装

首先进入cursor官网,官网中间即是下载按钮。

在这里插入图片描述

安装后进行简单的选择和登陆后,即可开始使用(我已经安装完了,没办法截图了,但是很简单)。

对于免费用户只能使用Chatgpt 3.5模型,并且有限额(新人应该有试用14天),可以选择购买高级功能,或想办法白嫖。价格可以在官网中的PRICING中查看。

在这里插入图片描述

2. 插件下载

之前已经说了vscode的功能及其有限,他对于语言的支持及其依赖插件完成。所以对于我们的java开发,也需要下载插件。下载插件的位置在左上角,如果找不到可以继续往下看大概结构介绍那里有。

2.1 Extension Pack for Java

在这里插入图片描述

这个插件包含了java开发所需的所有插件,共包含七款,涵盖了对Java语言、Maven、Gradle等的支持,具体内容可以下载后查看,总之这个插件包含了所有java开发所必须的内容。

2.2 Docker

在这里插入图片描述

这个插件对dockerfile的编写提供了更好的支持,如果项目中有便携dockerfie的需求可以下载。

2.3 Python

在这里插入图片描述

如果项目中有编写Python脚本的需求,可以下载Python插件来提供更好的支持。

2.4 JetBrains Darcula Theme

在这里插入图片描述

这是一个仿造Idea的主题,如果看惯了Idea的原生颜色可以下载,不过代码颜色没有改变,还是很不舒服的,如果有更好的主题麻烦推荐,我也迫切需要。

2.5 JetBrains Icon Theme

在这里插入图片描述

这款插件仿造了Idea的文件图标,如果习惯Idea的可以使用,不过也不太好用,因为当java被识别为项目中的java文件后,文件图标还是小茶杯。

2.6 Chinese

在这里插入图片描述

这款插件提供了cursor的中文支持,实际上vscode的中文也是这个插件,两者插件是互通的。

3.大概结构介绍

左侧功能页

cursor的大部分功能被集中在了左侧,具体如图所示

在这里插入图片描述

资源管理器:项目文件,没啥说的。

搜索:这个就是全局搜索,可以在这里搜整个项目的关键字。选中关键字,右键点击也有搜索选项。

在这里插入图片描述

源代码管理:这个就是git的可视化工具,上面是一些简单的代码推送拉去功能,加号就是git add操作,提交就是commit操作,消息就是commit消息

在这里插入图片描述

下面是git提交记录

在这里插入图片描述

我们也可以通过点击左下角的分支信息,来进行一些分支类的操作,其中刷新按钮就是同步远程分支。

在这里插入图片描述

点击分支后,效果如下:

在这里插入图片描述

扩展:这里就是查看我们下载的插件,以及搜索插件的地方。

运行和调试:这里可以运行我们的代码,并且进行断点调试。

JAVA PROJECT:这里可以配置vscode识别的Java项目,以及重新构建项目,这个功能就和idea中maven里的刷新符号功能是一致的。

在这里插入图片描述

MAVEN:这里就和idea中的maven窗口功能类似,不过构建项目的功能没有在这里,可以控制maven的生命周期。这里还提供了分层视图和扁平视图,这里推荐分层视图吗,因为和idea一样,扁平视图不习惯。

在这里插入图片描述

没说到的就是我也没用过,如果有好用的功能,可以评论一下,我尝试尝试。

右侧AI页

cursor的AI功能集中在右侧,我么可以操作的有四个东西。

1. 环境上下文

通过在聊天框上方添加文件,可以添加环境上下文。

在这里插入图片描述

但在实际开发中,我们并不会在这里去添加环境上下文,而是在代码中进行选择。(直接复制粘贴,内容也会进入上下文,如终端报错在选中时就没有Add to Chat,我们就可以进行复制粘贴)。

在这里插入图片描述

在这里插入图片描述

或者直接选择报错位置

在这里插入图片描述

这样cursor会直接获取上下文,解决报错。最方便的是解决报错后,我们还不需要手动修改,之需要点击接受就好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2. AI模式

在聊天框的左下角可以选择AI的模式分别是Agent,Ask,Edit。

在这里插入图片描述

  • Agent:适合分步骤的任务,有良好的上下文逻辑。
  • Ask:适合平常询问
  • Edit:适合编辑代码需求
3. AI模型

这就不用多说了,选择AI模型,不过需要提一嘴的是,并不是所有模型都支持上述三种AI模式,当然在你选错的时候,cursor会给出提示。

AI模型可以在cursor的设置中进行配置(设置在右上角)。

在这里插入图片描述

后面还可以配置自己的apikey,具体什么套餐能使用什么模型我也不是很清楚,具体怎么设置,我也不是很清楚。

下侧终端页

下侧提供了终端功能,具体包括日志输出,以及终端命令。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中加号是新建终端,这个就没什么好说的了。终端都长一个样子。

页显示控制

在这里插入图片描述

curosr的右上角分别是左,下,右页的显示控制,以及设置。

4. 启动服务

idea中启动服务,之需要在右上角配置一下启动类和启动参数即可,但是cursor没有这种功能,插件也没有(但是我相信不久以后,后端开发的功能会越来越完善,这也是我选择用cursor的原因)。

在cursor中,我们需要在.vscode文件中创建launch.json文件,当你没有创建时,运行及调试页面也会提示你创建。并且通过vscode创建的launch.json文件会根据项目文件,自动写入合适内容,但可能不太准确,还需要手动修改。
在这里插入图片描述

文件中内容如下:

{"version": "0.2.0",//每一个配置项都表示一个类型的服务启动,比如说springboot中还有测试服务,测试单元,都可以作为一个配置项,自动生成的文件也会包含项目中的这些启动服务配置"configurations": [{"type": "java","name": "Spring Boot-DoucApiApplication","request": "launch",//启动主类"mainClass": "",//项目名称(如果主类在模块中填写模块名称)"projectName": "",//启动参数"vmArgs": "",//传入启动主类的参数"args": [],//如果工作目录在项目根目录则不需要这个参数,如果在模块中则要指定到对应模块的文件夹"cwd": "${workspaceFolder}/模块",//不懂干嘛的,项目后面还给我生成了setting.json文件以及task.json文件,都不知道干嘛用的"preLaunchTask": ""}]
}

maven地址的配置可以通过在.vscode文件夹中的settings.json文件(这个文件中主要涉及一些项目配置)中设置,内容如下
在这里插入图片描述
也可以通过ctrl + shift + p,搜索user setting json,进入设置的json文件中修改,完整全局配置的maven地址。
在这里插入图片描述
在这里插入图片描述

完成了启动配置后,我们仍然不能直接启动,因为idea启动之前会自动执行编译,但是cursor不会,所以我们还需要执行mvn clean compile命令。

在命令执行完成,成功生成target文件后,这是就可以启动项目了。启动项目可以通过运行与调试界面,也可以通过代码页的右上角提供的按钮。

在这里插入图片描述

5.其他

跳转到实现类以及调用处

cursor中没有类似idea的绿色图标跳转到实现类,cursor中可以通过右键点击接口的方法,选择转到实现跳转到实现类。转到引用则是跳转到方法使用的地方。

在这里插入图片描述

搜索和全局搜索快捷键

文件内搜索和idea一样,都是ctrl + f,全局搜索则是ctrl + shift + f,可以先选择需要搜索的关键字,然后在按快捷键,可以一键搜索。
在这里插入图片描述

全局搜索文件

左侧放大镜功能智能搜索关键字,而全局搜索文件功能则需要通过ctrl + p。
在这里插入图片描述

后续发现在补充。。。。。

相关文章:

cursor使用经验分享(java后端服务开发向)

前言 cursor是一款基于vscode,并集成AI能力的代码编辑器,其功能包括但不限于代码生成及补全、AI对话(能够直接将代码环境作为上下文)、即时应用建议等等,是一款面向未来的代码编辑器。 对于vscode,最先想…...

SpringBoot3—场景整合:AOT

一、AOT与JIT AOT:Ahead-of-Time(提前编译):程序执行前,全部被编译成机器码 JIT:Just in Time(即时编译): 程序边编译,边运行; 编译:源代码&am…...

蓝桥与力扣刷题(蓝桥 数字三角形)

题目: 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和(路径上的每一步只可沿左斜线向下或右斜线向下走)。 输入描述…...

蓝桥试题:传球游戏(二维dp)

一、题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球&#xff0…...

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产:game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程,从像素渲染到不使用GPU的方式,我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…...

Lab 3 Page Table

题目链接 我的问题: 1 每个进程的kernel stack是干啥的来着?在何时初始化的? 题目2:A kernel page table per process (hard) 1 一些题目要求 Your first job is to modify the kernel so that every process uses its own c…...

嵌入式学习L5D2-exec函数族和守护进程

exec函数族1 下面那个加了p环境变量就不用那个了。 输出的是系统 exec函数族2 后面不执行了 第二个参数瞎写也可以,但是要填 这里是说不想被替换,就在子进程里面执行这个。 守护进程概念 后台进程 守护进程是后台进程 一个fork了一个进程&#xff…...

洛谷P1091

题目如下 思路 谢谢观看...

行为模式---迭代器模式

概念 迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理…...

阿里云 DataWorks面试题集锦及参考答案

目录 简述阿里云 DataWorks 的核心功能模块及其在企业数据治理中的作用 简述 DataWorks 的核心功能模块及其应用场景 解释 DataWorks 中工作空间、项目、业务流程的三层逻辑关系 解释 DataWorks 中的 “节点”、“工作流” 和 “依赖关系” 设计 解释 DataWorks 中 “周期任…...

【五.LangChain技术与应用】【29.LangChain Agent小案例1:智能代理的实战应用】

“为什么我的Agent总是处理不好实时数据?”“如何让AI自己调用API查股票?” 这些困扰开发者的问题,今天咱们用一个真实案例来彻底解决。不聊虚的,直接上手教你怎么用LangChain Agent造一个会自己查股价、算指标、生成报告的股票分析助手。全程高能,代码可直接复制粘贴到项…...

TWind 的黑马点评随笔

TWind 的黑马点评随笔 ​ 目前是把黑马点评的技术部分完全做完了,不能说吃得饱饱,也算个半饱吧。 ​ 黑马点评严格来说不算项目,因为它给的前端过于垃圾,内容又重在Redis,所以称之为Redis练习貌似跟贴切。 ​ 尽管如…...

windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐

windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐 一、Spleeter 是什么? Spleeter 是由法国音乐流媒体公司 Deezer 开发并开源的一款基于深度学习的音频分离工具。它能够将音乐中的不同音轨(如人声、鼓、贝斯、钢琴等)分…...

dify + ollama + deepseek-r1+ stable-diffusion 构建绘画智能体

故事背景 stable-diffusion 集成进 dify 后,我们搭建一个小智能体,验证下文生图功能 业务流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…...

pytorch3d学习(二)——安装与纹理显示demo测试

文章目录 零、安装一、渲染0. 导入模块1. 加载网格和纹理文件零、安装 参考了这篇文章:Pytorch3D Linux环境下安装(踩坑)记录 经历了红框子里面的步骤,然后测试一下官方给的代码,尝试一些 3D 算子,例如计算两个网格之间的倒角损失: from pytorch3d.utils import ico_s…...

C语言基础之【指针】(下)

C语言基础之【指针】(下) 指针和字符串字符指针字符指针做函数参数const修饰的指针变量指针数组做为main函数的形参项目开发常用字符串应用模型while和do-while模型两头堵模型字符串反转模型 字符串处理函数strchr()strrchr()strstr()strtok()strcpy()st…...

Redis--Hash类型

目录 一、引言 二、介绍 三、操作 1.HSET,HGET,HEXISTS,HDEL 2.HKEYS,HVALS 3.HGETALL,HMGET,HSAN 4.HLEN,HSETNX,HINCRBY,HINCRBYFLOAT 四、编码方式 1.ziplist(压缩列表) 2.hashtable(哈希表&am…...

迷你世界脚本道具接口:Item

道具接口:Item 彼得兔 更新时间: 2023-04-26 10:26:18 继承自 Actor 具体函数名及描述如下: 序号 函数名 函数描述 1 getItemName(...) 获取道具名称 2 getItemId(...) 获取actor对应的道具ID,如球类等 3 getDropItemNum(...) …...

C++中的.h文件一般是干什么的?

在C中,.h 文件通常是 头文件(Header File),它们的主要作用是声明类、函数、常量、宏以及其他在多个源文件(.cpp文件)之间共享的元素。头文件提供了一个接口,使得不同的源文件能够访问这些共享的…...

大型语言模型训练的三个阶段:Pre-Train、Instruction Fine-tuning、RLHF (PPO / DPO / GRPO)

前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 当前的大型语言模型训练大致可以分为如下三个阶段: Pre-train:根据大量可获得的文本资料&#…...

共享模型之管程(悲观锁)

共享模型之管程(悲观锁) 文章目录 共享模型之管程(悲观锁)一、常见线程安全的类二、对象头三、Monitor(监视器 / 管程)四、偏向锁偏向锁的实现原理撤销偏向锁 五、轻量级锁轻量级锁的释放 六、重量级锁七、…...

零基础C语言学习日志22(自定义类型:联合和枚举)

目录 联合体 联合体类型的声明 联合体的特点 相同成员联合体和结构体的对比 联合体大小的计算 例子 枚举类型 枚举类型的声明 枚举类型的优点 枚举类型的使用 联合体 联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成…...

ROS2 Rviz 实战:给 panda 机械臂场景塞个圆柱体

视频讲解 ROS2 Rviz 实战:给 panda 机械臂场景塞个圆柱体 创建add_cylinder的package ros2 pkg create add_cylinder --build-type ament_cmake --dependencies rclcpp control_msgs moveit_ros_planning_interface 在src中添加add_cylinder.cpp,如下 #…...

DeepSeek+知识库+鸿蒙,助力鸿蒙高效开发

不知道你们发现没有,就是鸿蒙开发官网,文档也太多太多了,对于新手来说确实头疼,开发者大多是极客,程序的目的是让世界更高效!看文档,挺头疼的,毕竟都是理科生。 遇到问题不要慌&…...

从零开始在Windows使用VMware虚拟机安装黑群晖7.2系统并实现远程访问

文章目录 前言1.软件准备2. 安装VMware17虚拟机3.安装黑群晖4. 安装群晖搜索助手5. 配置黑群晖系统6. 安装内网穿透6.1 下载cpolar套件6.2 配置群辉虚拟机6.3 配置公网地址6.4 配置固定公网地址 总结 前言 本文主要介绍如何从零开始在Windows系统电脑使用VMware17虚拟机安装黑…...

爬虫逆向:脱壳工具 frida-dexdump 的使用详解

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. 工具简介1.1 frida-dexdump介绍1.2 frida-dexdump支持场景1.3 frida-dexdump优点1.4 frida-dexdump工具使用方法2. 环境准备3. 安装 frida-dexdump4. 使用步骤4.1 步骤一:连接 Android 设备4.1 步骤二:安装目标应用…...

SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)

7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…...

【LeetCode101】对称二叉树

题目描述 给你一个二叉树的根节点 root , 检查它是否轴对称。 思路与算法 对称:左右子树互为镜像 这很显然暗示了一种递归方法 确定base case(s) 如果 left 和 right 都是 None ,那么它们是镜像的(对称&…...

K8s 1.27.1 实战系列(四)验证集群及应用部署测试

一、验证集群可用性 1、检查节点 kubectl get nodes ------------------------------------------------------ NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 3h48m v1.27.1 k8s-node1 Ready <none> …...

api测试工具(postman、apifox、apipost)

一、apifox 整体不错&#xff0c;免费版性能好&#xff0c;但内网&#xff08;离线状态&#xff09;初次使用需要登陆&#xff0c;无法通过。&#xff08;即内网不可用&#xff09; 二、postman 当测试项目多的时候可能会卡死&#xff0c;卡输入修改、丢失请求、登陆账号等问题…...