cursor重构谷粒商城01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。
一、为什么重构谷粒商城
谷粒商城是一个典型的 B2C(Business to Customer)电商项目,专注于实现线上商品交易平台的功能。它模拟真实的电商业务流程,从用户注册到商品浏览、下单、支付、物流等全流程,采用微服务架构,结合多种主流技术栈,适合用于学习微服务开发、分布式架构、和高并发处理的技术。
主要会使用的技术栈:java、spring boot、spring cloud、Spring Data JPA、MyBatis-Plus、Spring Security、OAuth2、Vue.js、Element-UI / Ant Design、Vue Router、Vuex、Axios、MySQL、redis、Nginx、RabbitMQ / RocketMQ、ElasticSearch (ES)、Logstash + Kibana、Docker、Kubernetes (K8s)、Jenkins、Maven 、Swagger、JWT、OSS 、FastDFS、Zookeeper。
可以说,学会了它,就意味着你掌握了主流的技术栈。能够拿下大部分的offer,甚至可以成为独立开发者。

但是,谷粒商城也有不足。
1、年代久远,部分技术栈过时
2、官方文档不够细致,很多内容在视频中有,文档中没有,手动做笔记又太浪费时间
3、有些内容存在缺漏、错误。
4、对很多技术栈,默认你已经具有基础,并非真正的0基础。
5、cursor为代表的AI编程工具突飞猛进,我们完全没有任何必要再向过去那样学习一大堆技术栈,再进行项目实战,这样会浪费你大量宝贵时间。
基于此,我决定出一个重构版的系列博客,解决以上问题。
二、需要你具有哪些基础
Java 基础(掌握面向对象和基本多线程)。
Spring Boot(能启动服务、开发 REST API)。
MySQL(掌握基础数据库操作)。
其它的技术栈,在使用之前,我尽量会用最精简语言,出一篇单独的番外篇文章,帮你快速入门。

三、会做哪些更新
Spring Cloud Netflix 组件:Netflix 系列中的部分组件已进入维护模式,将迁移至 Spring Cloud 官方推荐的替代方案。
Eureka:考虑迁移至 Nacos 或 Consul,以获得更丰富的服务注册与发现功能。
Ribbon:使用 Spring Cloud LoadBalancer,提供更现代的负载均衡机制。
Hystrix:替换为 Resilience4j,以利用更轻量级的熔断与限流功能。
MyBatis-Plus:虽然 MyBatis-Plus 仍被广泛使用,但随着 JPA 和 Spring Data 的发展,许多项目更倾向于使用这些更高层次的持久化框架,以简化开发流程。本项目将尝试进行这一升级。
RabbitMQ:在某些高并发场景下,Kafka 等消息队列因其高吞吐量和分布式特性,正逐渐成为更受欢迎的选择。
另外,对于其它技术栈,我们也会基于较新且稳定的版本进行迭代。
本系列博客,是可以持续升级迭代的,后期如果时间、精力允许,还考虑扩展其它模块、功能。增加新的技术栈,等等。当然,也许我还会重构其它类型的项目,比如线上教育、直播、办公系统…
四、课程大纲
为了同时兼容做过谷粒商城和没有做过谷粒商城的同学。本项目将分成两个大部分。第一个部分,完全照搬原来谷粒商城的技术栈,做到复制。第二个部分,对谷粒商城进行技术重构。所有使用到的技术栈,都会单独出一篇番外篇进行介绍。
因为本专栏完全是个人兴趣驱动,如果觉得写的不错,请三连支持,不要白嫖哦。。这样,我也可以更有动力持续更新。

五、什么是cursor
Cursor 是一款基于 AI 的编程工具,旨在提高开发者的编程效率。它结合了现代代码编辑器的功能和强大的 AI 辅助编程技术。以下是关于 Cursor 的主要特点和功能的介绍:
- 智能代码补全
Cursor 通过 AI 模型(如 OpenAI 的 GPT 系列)提供智能代码补全功能。
它能够理解代码上下文并提供精确的代码建议,减少开发者的输入量。
不仅适用于简单的语法补全,还可以帮助完成复杂的函数、算法或逻辑。 - 代码生成
开发者可以用自然语言描述需求,Cursor 能自动生成对应的代码段。
适用于创建模板代码、处理繁琐的重复性任务,以及快速实现原型。 - 错误检测与调试
内置 AI 功能能够实时检测代码中的错误,并提供详细的分析和修复建议。
调试过程中,Cursor 可以帮助定位问题的根本原因,优化调试效率。 - 文档生成
Cursor 可以自动生成代码文档,包括函数注释、接口描述和类说明等。
这种功能特别适用于提高代码可读性和团队协作效率。 - 多语言支持
支持多种编程语言(如 Python、JavaScript、Java、C++ 等),能够适应不同开发场景。
它可以根据语言特性提供定制化的建议和功能。 - 版本控制集成
支持与常见版本控制系统(如 Git)集成,方便开发者在项目管理中应用 AI 辅助功能。
cursor官网:https://www.cursor.com/

六、下载cursor
cursors是基于VSCODE进行扩展的,需要先下载VSCODE。这里我就跳过下载过程了
接下来,官网下载好cursor

点击右下角,Install cursor,安装命令行命令。


登录

像打开vscode一样打开。我这里打开了一个之前的项目给大家展示用。

更改下菜单栏位置。ctrl+shift+P,输入settings。找到VScode Settings。


七、解决cursor快捷键冲突
cursor的快捷键可能与电脑其它快捷键冲突,这一节我们来重点解决下这个问题。点左下角齿轮就好。

相关文章:
cursor重构谷粒商城01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...
如何在 ASP.NET Core 中实现速率限制?
在 ASP.NET Core 中实现速率限制(Rate Limiting)中间件可以帮助你控制客户端对 API 的请求频率,防止滥用和过载。速率限制通常用于保护服务器资源,确保服务的稳定性和可用性。 ASP.NET Core 本身并没有内置的速率限制中间件&…...
STM32-笔记43-低功耗
一、什么是低功耗? 低功耗是指通过优化设计和采用特定的技术手段,降低电子设备在运行过程中消耗的能量,从而延长电池寿命、提高性能和减少发热。低功耗设计主要从芯片设计和系统设计两个方面进行,旨在减少所有器件的功率损耗&am…...
Facebook 隐私风波:互联网时代数据安全警钟
在社交媒体飞速发展的今天,个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一,Facebook面临的隐私问题,尤其是数据泄露事件,频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏,Facebook的隐私挑…...
Java 中的 ZoneOffset
介绍 在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。 时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东 8 区的时间等。 当…...
amis模板语法、数据映射与表达式
模板字符串 表达式中获取变量 可以支持在普通文本中,使用数据映射语法:${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法:${xxx} 获取数据域中变量的值,并渲染 HTML "<h1>Hello<…...
频域增强通道注意力机制EFCAM模型详解及代码复现
背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...
GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
代码托管平台 GitLab 国际站(GitLab.com)近日发布公告,官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务,并提供 60 天过渡期自行迁移账户数据,超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...
BPG图像库和实用程序(译)
1)快速介绍 编辑Makefile以更改编译选项(默认编译选项对于Linux应该是OK的)。输入make来编译,输入make install来安装编译后的二进制文件。bpgview:为了编译它,你需要安装SDL和SDL_image库。Emscripten的使用ÿ…...
简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程
以下是一个常见的业务过程示例,展示了从客户端调用接口,再到调用中间件(Nacos、Redis、Kafka、Feign)和数据库的过程: 假设我们有一个电商系统,客户端要查询某个商品的详细信息,这个商品信息可…...
01.02、判定是否互为字符重排
01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 在这道题中,我们的任务是判断两个字符串 s1 和 s2 是…...
什么是.NET中的反射,它有哪些应用场景
反射是.NET框架提供的一种强大的机制,它允许程序在运行时查询和操作对象的类型信息。以下是对.NET中反射的详细解释及其应用场景: 一、反射的定义 在.NET中,所有类型的信息(包括类、结构、委托、接口、枚举等以及它们的成员信息…...
Linux离线部署ELK
文章目录 前期准备开始安装安装elastic search安装logstash安装kibana 配置ELK配置ElasticSearch配置logstash配置kibana 启动ELK启动命令启动测试 设置ELK策略创建ILM策略将ILM策略与日志index关联查看索引是否被ILM策略管理 前期准备 ELK包含三部分软件 ElasticSearch用作搜…...
解决 chls.pro/ssl 无法进入问题
使用charles的xdm不知道有没有遇到这样的问题。手机上访问 chls.pro/ssl 就始终进不去了… 各种检查,ip地址、证书,ssl设置等等都正常,就是进不去。 在一位好心人的提醒下得到了一个解决办法。那就是换一个地址 最新地址是: charlesproxy…...
Rust 游戏开发框架指南
Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一,基于 ECS(实体组件系统)架构。 特点: 🚀 高性能 ECS 系统📦 热重载支持🎨 现代渲染器🔊 内置音频系…...
hadoop3.3和hive4.0安装——单节点
hadoop3.3x和hive4.0安装部署 为什么我要安装hive4.0,因为阿里云镜像只有hive4.0 软件相互兼容性版本 系统centos7 uname -a如果内核3.0以上可以用 安装jdk1.8以上的版本(配置好环境变量) hadoop3.3.x与hive4.0.x 创建目录 mkdir -p /us…...
centos安装golang
1.下载golang golang所有版本网址 https://studygolang.com/dl //下载并解压到/usr/local文件下 wget https://studygolang.com/dl/golang/go1.18.3.linux-amd64.tar.gz //解压并复制到/user/local文件夹下 tar -C /usr/local -zxf go1.18.3.linux-amd64.tar.gz 2.编辑环境变…...
博图 linucx vmware
电脑与 PLC 的连接 博图装在虚拟机里,PLC 通过网线与电脑连接 可以是使用网线直接连接,也可以中间接个路由器或交换机 问题在于虚拟机提供多种网络连接方式,但不是每种都可以与 PLC 建立连接 以 VMware 虚拟机为例,进入编辑/虚拟网…...
Service Work离线体验与性能优化
Service Work离线体验与性能优化 引言 先放个意外事件,万事开头难🤣🤣🤣 原计划是分享离线应用与数据资源缓存的应用实践,结果发现这一技术已被web标准废弃 曾经做过一个PC应用,业务需求要求应用具备容灾…...
Unity 语音转文字 Vosk 离线库
市场有很多语音库,这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的,(确保麦克风正常,且索引正确)分大…...
Unity安卓构建实战指南:解决APK真机安装闪退与构建失败
1. 这不是一本“从零开始”的书,而是一份你真正上手Unity安卓游戏开发前必须撕开的说明书我带过三届Unity实习工程师,也帮二十多个独立开发者把Demo打包进Google Play。每次看到新人在“安卓构建失败”报错里反复挣扎,或者对着“IL2CPP编译卡…...
BLE蓝牙扫描深度剖析:扫描原理、核心参数、前后台差异
一、前言BLE设备交互分为两大角色:广播端(外设Peripheral)与扫描端(中心Central)。上一篇博客详解了四大广播模式,本文聚焦配套核心能力——BLE扫描机制。绝大多数蓝牙开发疑难问题:前台能扫后台…...
基于Arduino的模块化DIY智能时钟:从RTC到RGB LED的完整实现
1. 项目概述:打造一台高度可定制的DIY RGB LED时钟如果你和我一样,对市面上千篇一律的电子钟感到审美疲劳,同时又对Arduino和电子DIY充满热情,那么这个项目可能就是为你准备的。我们不是在简单地组装一个套件,而是在亲…...
Python PIL 画矩形框
基础代码 from PIL import Image, ImageDraw# 打开图片 img Image.open(your_image.jpg)# 创建绘图对象 draw ImageDraw.Draw(img)# 矩形坐标 (x1, y1, x2, y2) coords (23, 21, 69, 76)# 画矩形框(红色,线宽2) draw.rectangle(coords, ou…...
0.2毫秒快速启动的操作系统
在工业控制以及航空航天等核心场景,极速启动就是高可靠系统的生命线。0.2毫秒超快启动搭配硬件看门狗,让设备在掉电重启、异常恢复时瞬时归位,关键任务永不延误! https://www.bilibili.com/video/BV11mLY6VERt/?spm_id_from333.1…...
Hindsight API参考:REST接口完整文档
Hindsight API参考:REST接口完整文档 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight Hindsight是一个强大的Agent Memory系统,提供了全面的REST API接口&…...
DS4Windows终极指南:3步让PS手柄在PC上完美运行游戏
DS4Windows终极指南:3步让PS手柄在PC上完美运行游戏 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PS手柄连接Windows电脑后无法识别而烦恼吗?🎮…...
如何在3分钟内为任何活动搭建专业级滚动抽奖系统?Magpie-LuckyDraw全平台开源方案深度解析
如何在3分钟内为任何活动搭建专业级滚动抽奖系统?Magpie-LuckyDraw全平台开源方案深度解析 【免费下载链接】Magpie-LuckyDraw 🏅A fancy lucky-draw tool supporting multiple platforms💻(Mac/Linux/Windows/Web/Docker) 项目地址: https…...
告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定
告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定每次UI微调就导致脚本大面积失效?分辨率变化让精心编写的自动化测试瞬间崩溃?作为从坐标点击转型到控件识别的实践者,我深刻理解这种挫败感。三年…...
Redis 客户端连接详解
Redis 客户端连接详解 引言 Redis 是一款高性能的内存数据结构存储系统,常用于缓存、会话管理、实时排行榜等功能。客户端连接是 Redis 生态系统中的重要组成部分,本文将详细介绍 Redis 客户端连接的相关知识,包括连接方式、连接配置、连接管理等方面。 Redis 客户端连接…...
