Cursor配置Java环境、创建Spring Boot项目

一:配置JDK和Maven

  • cursor默认会读取环境变量JAVA_HOMEMAVEN_HOME,如果没有配置去找默认路径~/.m2/settings.xml
  • 也可以手动指定:Ctrl + Shift + P 输入"Preferences:Open User Settings(JSON)"打开settings.json文件,然后新增配置,保存后重新加载。

”java.home“:可能不同版本的key不一样,如果Cursor没有画黄线警告那就没问题。

"java.jdt.ls.java.home":"/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home","java.configuration.maven.userSettings":"/Users/mengday/Softwares/apache-maven-3.9.10/conf/settings.xml",

方式二:cursor新版本

在这里插入图片描述

选择jdk版本

在这里插入图片描述


设置maven setting.xml

在这里插入图片描述

二:安装常用插件

2.1 Extension Pack for Java(必装)

Ctrl + Shift + X 搜索插件。

在这里插入图片描述
  • Language support for java™ by Red Hat:提供语法高亮、智能代码补全、代码检查、代码格式化(shift+ Alt +F(Windows/Linux)或 shift + option +F(Mac))、代码导航以及重构支持等功能,辅助高效编写和优化Java 代码。
  • Debugger for Java:实现轻量级Java 程序调试,可设置断点,调试时查看变量值、对象属性和调用栈,追踪程序执行流程以排查问题。
  • Maven for java:用于管理 Maven 项目,能创建新项目,管理项目依赖,执行 Maven 构建任务,如清理、编译、打包项目等。
  • Test Runher for java:支持JUnit 和 TestNG等测试框架,方便运行和调试Java 测试用例,展示测试结果及详细日志,助力开发者定位问题,
  • Project Manager for java:可在编辑器中管理多个java 项目,实现快速切换,导入本地Java 项目,可视化展示项目模块、包和文件结构。
  • Gradle for java:针对 Gradle 构建工具,能创建 Gradle 项目,运行 Gradle 任务,曾理项目构建、测试流程,查看 Gradle 任务和工程依赖。

2.2 Spring Boot Extension Pack

在这里插入图片描述


运行调试Spring Boot项目。

2.3 Spring Initializr Java Support

在这里插入图片描述


创建SpringBoot项目

2.4 Swithc2IDEA

一般使用使用Cursor进行AI编程,使用IDEA进行代码调试,使用快捷键alt+shfit+O 可以快速跳转到idea文件,并将代码行光标同步为cursor位置。

在这里插入图片描述


使用快捷键alt+shfit+O 可以快速跳转到cursor文件(或者右键OpenFile In Cursor),并将代码行光标同步为idea位置。

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

2.5 MySQL

安装MySQL插件。

在这里插入图片描述


创建数据库连接。

在这里插入图片描述


配置数据库连接。

在这里插入图片描述

执行SQL:Active选择要连接的数据库,Run sql。

在这里插入图片描述

三:创建Spring Boot项目

在这里插入图片描述
在这里插入图片描述
  1. 选择项目类型:Spring Boot
  2. 选择依赖类型:Maven Project
  3. 选择SpringBoot版本:3.5.3
  4. 选择项目语言:Java
  5. 输入mavan坐标Group Id、Artifact Id(com.example、demo)
  6. 选择打包方式:Jar包
  7. 选择JDK版本:21
  8. 选择常用maven依赖(如Spring Web、Lombok)
  9. 回车保存到一个新文件夹作为项目的跟路径
在这里插入图片描述

四:运行Spring Boot项目

运行时可能会出现java版本、spring boot版本不匹配的情况、或者maven配置有问题等,导致运行报错。

在这里插入图片描述

如果出现运行报错可以直接让cursor解决即可。右边的New Chat 通过快捷键 Ctrl + Shift + L 打开,输入”项目启动报错,请解决“。

在这里插入图片描述

五:初体验

在Chat中输入”创建一个HelloWorldController文件,写一个rest api,返回字符串”helloworld ai “。代码生成好时需要点击Accept来接收AI生成的代码。

在这里插入图片描述
在这里插入图片描述

Read more

【STL源码剖析】从源码看 list:从迭代器到算法

【STL源码剖析】从源码看 list:从迭代器到算法

半桔:个人主页  🔥 个人专栏: 《Linux手册》《手撕面试算法》《C++从入门到入土》 🔖源码之前,了不秘密。 文章目录 * 前言 * 一. list 概述 * 二. list 的节点 * 三. list 迭代器 * 3.1 定义 * 3.2 构造 * 3.3 重载 * 四. list 数据结构 * 五. list 的构造和内存管理 * 六. list 的接口 本文并不适合STL初学者。对于那些熟练掌握 C++ 模板和 STL 的日常使用,理解内存分配与对象生命周期,并且有扎实的数据结构基础,希望深刻了解STL实现细节,从而得以提升对STL的扩充能力,或是希望藉由观察STL源代码,学习世界一流程序员身手,

By Ne0inhk
【C++】STL之list模拟实现:关于链表容器的双向迭代器你知道多少?

【C++】STL之list模拟实现:关于链表容器的双向迭代器你知道多少?

前言: 前面的博客中我已经介绍了STL核心容器之一的list相关接口的使用,今天我们就从底层出发,来模拟实现一下list的那些核心接口函数。同时,也来感受一下list的双向迭代器到底与string和vector的随机迭代器有哪些区别? list容器功能接口介绍:https://blog.ZEEKLOG.net/Miun123/article/details/151685386?spm=1001.2014.3001.5502 废话不多说,我们直接进入今天的正题👇️👇️👇️ list容器深度剖析及模拟实现 我们想要模拟实现list容器,那就要理解list容器的底层结构。前面的博客已经提到,其本质就是一个双向链表,所以,成员变量就应该包含一个记录头节点的指针,以及记录有效节点个数的变量。同时,为了list容器可以满足不同类型的数据,我们将所有的类实现为类模板。 1、定义节点结构 struct创建的类默认所有的成员但是公开的,而节点结构就需要公开被list访问。 template<class T> struct list_node { // 成员变量 T _da

By Ne0inhk
排序--数据结构初阶(4)(C/C++)

排序--数据结构初阶(4)(C/C++)

文章目录 * 前言 * 理论部分: * 1.直接插入排序 * 2.希尔排序 * 3.直接选择排序 * 4.堆排序 * 5.冒泡排序 * 6.快速排序 * 归并排序 * 非比较排序 * 计数排序 * 作业部分 前言 这是数据结构初阶的最后一期,虽然来说在C++的库函数里面有sort函数可以代替这里所有的方法,并且时间复杂度也是优于他们的,但是sort函数是由他们写出来的,因此,还是是有必要学习一下的 理论部分: 这里的代码实现都是按升序来的 排序的话建议先写单趟再写整体 这些排序在两数相等的时候一般是不进行操作的(一般这么写) 1.直接插入排序 就是目前在最后的那个数跟前面每个数比,看看要插哪 时间复杂度:O(n2) 最好的情况下是O(n) 在小段小段有序时有极大的优势(相对于选择排序跟冒泡排序) 代码实现: void InsertSort(int* a, int n)

By Ne0inhk
大模型应用:最优路径规划实践:A*算法找最优解,大模型做自然语言解释.91

大模型应用:最优路径规划实践:A*算法找最优解,大模型做自然语言解释.91

一、引言         算法是个很有意义的课题,尽管大模型让我们不需要像以前学习机器学习那样,需要很深的数学基础,但结合算法来应用大模型确实是个很有趣的事情,传统算法经过数十年发展,已在路径规划、优化计算等领域达到极高的精确度;另一方面,大语言模型的崛起让人机交互变得前所未有的自然流畅。然而,一个不容忽视的现实是:再精确的算法,如果用户看不懂、不会用,就只是实验室里的玩具;再流畅的表达,如果缺乏技术可靠性,就只是华丽的空谈。         想象这样一个场景:导航系统为你计算出了一条理论上最优的路线,却只能用一串坐标告诉你怎么走;或者,一个能言善道的助手热情地为你指路,却把你带进了死胡同。这两种情况,本质上都是技术能力与用户体验之间的断裂。这种断裂并非偶然,而是单一技术路线的固有局限。算法擅长计算却不善表达,模型善于沟通却难以精确,各有所长,也各有所短。因此,真正的突破不在于让某一方变得更强大,而在于让两者形成互补协作的关系,用各自的长处弥补对方的短板。         这是我们今天想探讨得A*算法与大模型融合的核心价值所在。A*算法如同精密的"空间计算大脑",保证路径的数学最

By Ne0inhk