新手向:SpringBoot后端查询到数据,前端404?(附联调时各传参方式注解总结-带你一文搞定联调参数)
前言:
在 Spring Boot 项目开发中,后端小伙伴可能经常遇到这样诡异的场景:
- 后台日志显示查询到了数据,但前端却一脸懵逼地告诉你 404 Not Found?
- 接口明明写好了,Postman 直接访问却提示找不到?
- 调试半天,最后发现只是一个传参方式的问题?🙃
为什么会出现这种情况?是 后端接口定义的问题,还是 前端请求方式不对?或者是 Spring Boot 机制在悄悄“帮忙”,让空数据变成了 404?
这篇文章将带你 快速排查这个经典问题,并且 总结常见的 Spring Boot 传参方式及注解用法,助你在 联调时一次搞定参数对接,不再踩坑!🔥
复刻场景:请问你能找出问题吗?(答案在文末哦)
后端打印出查询结果但测试却是404?你能找出问题所在吗(注意这里不是端口的问题哦,作者配置的启动端口就是8888)
讲到这里了,作者就不妨来先讲讲各类注解在传参的时候的用法
传参注解的使用大全
在 Spring Boot 开发中,前后端交互时,数据的传递方式有多种形式,主要包括 GET、POST、PUT、DELETE 等 HTTP 方法,以及 Query 参数、Path 变量、RequestBody、Header、Form 表单,对应的注解也有不同的用法。
🟢 1. Query 参数(@RequestParam)
适用场景:一般用于 GET 请求,将参数拼接在 URL 后面,如 ?key=value
示例
GET /user/getUserByName?name=Tom
@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/getUserByName")public String getUserByName(@RequestParam String name) {return "查询用户:" + name;}// @RequestParam 可以提供默认值和非必传参数@GetMapping("/getUserByAge")public String getUserByAge(@RequestParam(required = false, defaultValue = "18") int age) {return "用户年龄:" + age;}
}
特点
- 适用于 简单参数传递,如
?key=value
形式 - 可以设置
required = false
使参数可选 - 可以设置
defaultValue
以提供默认值
🔵 2. Path 变量(@PathVariable)
适用场景:用于 RESTful 风格 API,参数作为 URL 路径的一部分,如 /user/1001
示例
前端请求
GET /user/1001
@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/{id}")public String getUserById(@PathVariable("id") Long id) {return "查询用户 ID:" + id;}
}
特点
- 适用于 RESTful 结构,更加语义化
- 需要在
@GetMapping("/{id}")
的路径中声明参数 @PathVariable("id")
可以省略("id")
,但建议保持一致,增强可读性
🟠 3. RequestBody 方式(@RequestBody)
适用场景:用于 POST/PUT 请求,前端传递 JSON 格式的数据,适合 复杂对象
示例
前端请求(JSON-前后端交互的一种数据格式)
{"id": 1001,"name": "Tom","age": 25
}
@RestController
@RequestMapping("/user")
public class UserController {@PostMapping("/add")public String addUser(@RequestBody User user) {return "添加用户:" + user.getName();}
}
特点
- 适用于 复杂数据传输(JSON)
- 需要
@RequestBody
注解将 JSON 解析为Java对象 - 默认情况下,Spring Boot 需要使用
@RequestBody
来解析 JSON 数据,否则会报 415 错误(Unsupported Media Type) - 需要前端设置
Content-Type: application/json
🟣 4. Form 表单数据(@RequestParam 或 @ModelAttribute)
适用场景:前端以 x-www-form-urlencoded
形式提交数据
示例
前端请求
POST /user/register
Content-Type: application/x-www-form-urlencodedname=Tom&age=25
@PostMapping("/register")
public String registerUser(@RequestParam String name, @RequestParam int age) {return "注册用户:" + name + ",年龄:" + age;
}
或者使用 @ModelAttribute
,支持对象自动封装:
@PostMapping("/registerUser")
public String registerUser(@ModelAttribute User user) {return "注册用户:" + user.getName() + ",年龄:" + user.getAge();
}
特点
- 适用于 表单提交
@RequestParam
适合单个参数,@ModelAttribute
适合对象- 前端需使用
application/x-www-form-urlencoded
🟡 5. Header 方式(@RequestHeader)
适用场景:用于 传递 Token、API Key、User-Agent 等请求头信息
示例
前端请求
GET /user/info
Authorization: Bearer abc123
@GetMapping("/info")
public String getUserInfo(@RequestHeader("Authorization") String token) {return "获取用户信息,Token:" + token;
}
特点
- 适用于 认证信息、请求头参数
@RequestHeader
用于获取指定请求头的值
🟠 6. 多参数组合(混合使用-少见)
有时候,我们需要同时接收 路径参数 + Query 参数 + Body 参数,可以 混合使用 多种方式:
@PostMapping("/update/{id}")
public String updateUser(@PathVariable("id") Long id,@RequestParam("role") String role,@RequestBody User user
) {return "更新用户 ID:" + id + ",角色:" + role + ",姓名:" + user.getName();
}
示例请求
POST /user/update/1001?role=admin
Content-Type: application/json{"name": "Tom","age": 26
}
✅ 总结
参数类型 | 方式 | 适用场景 | 主要注解 |
---|---|---|---|
Query 参数 | ?name=Tom | GET 请求参数 | @RequestParam |
Path 变量 | /user/1001 | RESTful 风格 | @PathVariable |
JSON 请求体 | {"name":"Tom","age":25} | POST/PUT 请求 | @RequestBody |
表单提交 | name=Tom&age=25 | POST 表单提交 | @RequestParam / @ModelAttribute |
请求头 | Authorization: Bearer token123 | 传递 Token / API Key | @RequestHeader |
传参时各类可能会出现问题的解决方案(如果出现了问题,请从下面的几个思路逐步检查!!)
✅ 1. 接口 URL 配置错误
/user/findbyid
检查你的 Controller
是否正确定义了路径。例如:
@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/findById")public User findById(@RequestParam Long id) {// 这里是正常的查询逻辑return userService.getById(id);}
}
可能的问题
- 大小写敏感:你的请求路径是
/user/findbyid
,但方法是@GetMapping("/findById")
,F 大写,B 大写,URL 访问是大小写敏感的,应该确保前端请求路径与后端路径完全一致。 - 路径拼写错误:检查是否手误拼错,比如
/findbyid
vs/findById
- 浏览器缓存问题:如果之前请求 404,可能是缓存问题,清理浏览器缓存或使用 Postman、cURL 重新测试。(这个着重注意:edge浏览器有时会出现这个问题!记得点开历史记录清除缓存)
✅ 解决方案 试试访问:
http://localhost:8080/user/findById?id=1
✅ 2. HTTP 方法错误
你的接口是 @GetMapping("/findById")
,但如果前端用的是 POST 请求,那么就会返回 404 Not Found
。
检查前端请求方式
GET /user/findbyid?id=1
如果前端使用了 POST
,但后端是 @GetMapping
,就会导致 405
✅ 解决方案
- 如果前端要用
POST
,后端应该改为
@PostMapping("/findById")
public User findById(@RequestParam Long id) {return userService.getById(id);
}
- 如果后端是
@GetMapping
,前端应该用 GET 请求。
✅ 3. 方法返回值不符合 REST 规范
如果你的 findById
方法返回的是 null
,Spring Boot 可能会返回 404 Not Found,而不是 null
值。
检查你的返回值
@GetMapping("/findById")
public User findById(@RequestParam Long id) {User user = userService.getById(id);System.out.println("查询到的用户:" + user);return user; // 如果 user 是 null,Spring Boot 可能会返回 404
}
解决方案
如果希望即使数据为空也返回 200
而不是 404
,可以这样:
@GetMapping("/findById")
public ResponseEntity<?> findById(@RequestParam Long id) {User user = userService.getById(id);if (user == null) {return ResponseEntity.ok("用户不存在");}return ResponseEntity.ok(user);
}
✅ 4. 返回数据未被 Spring Boot 识别
Spring Boot 需要 @RestController
或 @ResponseBody
才能正确返回 JSON。
@Controller // ❌ 可能只是普通 Controller,而非 REST
@RequestMapping("/user")
public class UserController {@GetMapping("/findById")public User findById(@RequestParam Long id) {return userService.getById(id);}
}
如果没有 @ResponseBody
,Spring 可能会尝试解析为视图,而不是 JSON。
✅ 解决方案
- 确保使用
@RestController
(等价于@Controller + @ResponseBody
)
@RestController
@RequestMapping("/user")
public class UserController {
如果必须使用 @Controller
,那么应该添加 @ResponseBody
:
@Controller
@RequestMapping("/user")
public class UserController {@GetMapping("/findById")@ResponseBodypublic User findById(@RequestParam Long id) {return userService.getById(id);}
}
✅ 5. 路由冲突或 Spring Boot 过滤器拦截
Spring Boot 可能有 全局拦截器、过滤器,或者其他 Controller
处理了相同路径的请求,导致你的请求被拦截或返回 404
。
解决方案
-
检查
application.properties
是否有拦截器
2.查看是否有 ControllerAdvice
处理全局异常
@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(NoHandlerFoundException.class)public ResponseEntity<String> handleNotFound() {return ResponseEntity.status(HttpStatus.NOT_FOUND).body("接口不存在");}
}
✅ 6. Spring Boot 404
相关全局配置
在 application.properties
中,检查是否配置了:
server.error.include-message=always
server.error.whitelabel.enabled=false
如果 whitelabel.enabled=true
可能会导致 Spring 自定义错误页面返回 404
。
🛠 总结 & 解决方案
可能原因 | 解决方案 |
---|---|
大小写敏感 | /findById ≠ /findbyid ,保持大小写一致 |
HTTP 方法错误 | @GetMapping("/findById") 不能用 POST 访问 |
返回 null 导致 404 | 使用 ResponseEntity.ok() 处理 |
缺少 @RestController | 使用 @RestController 或 @ResponseBody |
路由冲突 | 确保 /user/findById 不是被其他 Controller 拦截 |
拦截器或过滤器 | 检查 application.properties 及 ControllerAdvice |
你找到第一部分的bug所在之处了吗?(解答)
答对发在评论区的小伙伴有奖励哦----正确答案就是在解决问题的第四步方案!你发现了吗?-我们只需要把@Controller注解改成@RestController即可
因为我们返回的是一个UserVO对象,复杂类型要解析成json数据给前端交互,如果只用
@Controller则会解析为视图对象,但是在前后端分离的项目中基本不用它
修复结果如下:
最后的话:查 Bug 有套路,调接口不迷路!🚀
如果你看到这里,相信你已经对 Spring Boot 接口 404 问题 有了更清晰的认识,同时也掌握了 各种参数传递方式及注解用法。
开发过程中,前后端联调 总会遇到各种坑,但只要掌握排查思路,就能快速定位问题,精准修复 Bug!💪
如果这篇文章对你有帮助,记得点赞 👍、收藏 ⭐、分享 📢,让更多小伙伴少踩坑!也欢迎关注我,后续会持续分享更多 Spring Boot 开发技巧、Bug 查杀指南和最佳实践,让我们一起进步!🚀🔥
👇 你遇到过哪些诡异的接口问题?欢迎评论区交流! 💬
相关文章:
新手向:SpringBoot后端查询到数据,前端404?(附联调时各传参方式注解总结-带你一文搞定联调参数)
前言: 在 Spring Boot 项目开发中,后端小伙伴可能经常遇到这样诡异的场景: 后台日志显示查询到了数据,但前端却一脸懵逼地告诉你 404 Not Found?接口明明写好了,Postman 直接访问却提示找不到?…...
Elasticsearch7.6.2 安装过程
一. 安装JDK1.8 (1)创建安装目录 mkdir /usr/local/java/ (2)解压至安装目录 tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/java/ (3)设置环境变量 vim /etc/profile 在末尾添加 export JA…...
汇能感知的光谱相机/模块产品有哪些?
CM020A 分辨率:1600H1200V 光谱范围:350~950nm 光谱分辨率:1nm 接口:USB2.0 帧率:16001200 (6帧) 输出格式:Raw 8bit FOV:D73.5H58.8V44.1 相机尺寸:505055mm VM02S10 分辨率…...
【机器学习】K折交叉验证(K-Fold Cross-Validation)
文章目录 K折交叉验证步骤详解一. 核心目标二. 具体步骤与操作三. 关键变体与场景适配3.1 分层K折交叉验证3.2 时间序列K折交叉验证3.3 留一法(LOO)3.4 重复K折交叉验证 四. 实践注意事项五. Python代码示例六. 总结 K折交叉验证步骤详解 一. 核心目标 …...
【核心算法篇十九】《 DeepSeek因果推断:双重差分模型如何破解政策评估的「时空难题」》
一、当AB实验不可行时,我们该相信什么?(因果推断困局解析) 假设某城市推出「夜间地铁免费」政策,市长想知道这个政策是否真的提升了夜间经济。这时候你会发现: 1️⃣ 无法克隆城市:不能同时存在一个「实施政策」和「不实施政策」的平行宇宙 2️⃣ 数据混杂严重:疫情反…...
使用vue3框架vue-next-admin导出列表数据
在 Vue3 中实现 Excel 导出功能可以通过以下步骤完成,这里使用 xlsx 库来实现前端 Excel 导出: 1. 安装依赖 npm install xlsx file-saver # 或 yarn add xlsx file-saver2. 实现代码示例 需要在当前页引入 import * as XLSX from "xlsx";注…...
机器学习(1)安装Pytorch
1.安装命令 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 2.安装过程Log: Looking in indexes: https://download.pytorch.org/whl/cu118 Co…...
讯方·智汇云校华为官方授权培训机构
1.官方授权 讯方智汇云校是华为领先级授权培训机构(华为授权培训合作伙伴(HALP)体系,分为认证、优选、领先三个等级,领先级是HALP最高级),代表着华为对培训合作伙伴在专业能力、师资队伍、合作…...
彻底理解零拷贝技术,zero-copy
计算机处理的任务大体可以分为两类:CPU密集型与IO密集型。当前流行的互联网应用更多的属于IO密集型,传统的IO标准接口都是基于数据拷贝的,这篇文章我们主要关注该怎样从数据拷贝的角度来优化IO性能,让你的程序在IO性能方面赶超P8。…...
使用 MySQL 从 JSON 字符串提取数据
使用 MySQL 从 JSON 字符串提取数据 在现代数据库管理中,JSON 格式因其灵活性而广泛使用。然而,当数据存储在 JSON 中时,我们经常需要将其转换为更易于处理的格式。本篇文章将通过一个具体的 SQL 查询示例,展示如何从存储在 MySQ…...
矛盾(WEB)
##解题思路 打开靶场就是一段自相矛盾的代码,既要num是数字类型,又要判断为1 这种情况我们会想到弱类型的编程语言,插件查看过后,php就是弱类型的语言,此处并非是严格相等,只是 因此可以根据弱类型编程语言…...
优先队列(典型算法思想)—— OJ例题算法解析思路
目录 一、1046. 最后一块石头的重量 - 力扣(LeetCode) 算法代码: 代码思路 使用优先队列(大根堆) 将所有石头放入堆中 模拟碰撞过程 返回最后的重量 代码解析 时间复杂度 示例 输入 输出 二、703. 数据流…...
IGBT的损耗性分析
铝合金外壳设计器地址:嘉立创铝合金外壳/壳体/盒型-让您的产品更出彩 IGBT和MOS的损耗谁大: 电子元器件常见失效模式: 电子元器件的失效模式多种多样,以下是一些常见的失效模式及其原因: 开路: 原因:内部连接断开、焊点断裂、导线断裂等。 影响:电流无法通过,电路中断。…...
TypeScript跟js,es6这些的区别
TypeScript 一、TypeScript 是什么 想象 JavaScript 是一个自由奔放的艺术家,它在创作(编写代码)时不受太多约束,非常灵活,但有时也容易犯错且难以调试。而 TypeScript 就像是给这位艺术家配备了一套精确的工具和规范…...
单例模式代码示例
饿汉式:在类加载时就创建单例实例,线程安全。代码如下: public class Singleton {// 私有静态实例private static final Singleton instance new Singleton();// 私有构造函数private Singleton() {}// 公共访问方法public static Singleto…...
掌握 ElasticSearch的 _source 过滤
掌握 ElasticSearch的 _source 过滤 1. 引言2. _source 元数据基础2.1 什么是 _source 字段?2.2 _source 的基本用法 3. 禁用 _source3.1 如何禁用 _source 字段3.2 禁用 _source 的利弊3.3 最佳实践建议 4. _source 数据源过滤4.1 为什么需要数据源过滤?…...
车载音频配置(二)
目录 OEM 自定义的车载音频上下文 动态音频区配置 向前兼容性 Android 14 车载音频配置 在 Android 14 中,AAOS 引入了 OEM 插件服务,使你可以更主动地管理由车载音频服务监督的音频行为。 随着新的插件服务的引入,车载音频配置文件中添加了以下更改: • OEM 自定义的车…...
开目3DCAPP系列:三维制造成本分析与估算软件3DDFC
开目3DDFC 是一款基于 MBD 模型和工艺知识库的专业三维制造成本分析与估算软件,在不依赖详细工艺路线的情况下,根据零件几何信息和精度信息一键式完成零件成本的分析与估算,为面向成本的设计优化提供参考指引,也为企业对外产品报价…...
化学品安全数据表(MSDS)的全面解析与实用指南
SDS(安全数据表),也称为MSDS(材料安全数据表),是用于详细说明化学品的理化特性(如pH值、闪点、易燃性、反应活性等)及其对使用者健康(如致癌、致畸等)潜在危害…...
赛前启航 | Azure 应用开发实战指南:开启创意的无限可能
在 AI 时代,如何高效构建、优化和部署你的应用?如何充分利用微软 Azure 的强大能力,让开发更敏捷,性能更卓越?2 月 21 日 14:00-16:00,微软 AI 开发者挑战赛赛前指导第二场直播,带你全方位掌握 …...
Visual Studio Code的下载安装与汉化
1.下载安装 Visual Studio Code的下载安装十分简单,在本电脑的应用商店直接下载安装----注意这是社区版-----一般社区版就足够用了---另外注意更改安装地址 2.下载插件 重启后就是中文版本了...
home assistant ddns动态域名解析插件
home assistant ddns动态域名解析插件 使用方法 在HACS中搜索 ddns安装(hacs目前还没有合并我的提交,目前不可用),或者 clone https://github.com/weiangongsi/ddns.git, 将 custom_components/ddns目录拷贝至 Home Assistant 配置目录的 custom_compon…...
金融交易算法单介绍
0.背景 股票交易时,常见的订单类型有基础订单和条件订单。 基础订单 市价单限价单碎股单等等 条件订单 止损市价单止损限价单触及市价单(止盈)触及限价单(止盈)跟踪止损市价单跟踪止损限价单等等 除了基础订单和…...
LabVIEW利用CANopen的Batch SDO写入
本示例展示了如何通过CANopen协议向设备写入Batch SDO(批量服务数据对象)。Batch SDO允许用户在一次操作中配置多个参数,适用于设备的批量配置和参数设置。此方法能够简化多个参数的写入过程,提高设备管理效率。 主要步骤…...
正式页面开发-登录注册页面
整体路由设计: 登录和注册的切换是切换组件或者是切换内容(v-if和 v-else),因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页,有三个大模块:文章分类&…...
vLLM专题(二):安装-CPU
vLLM 是一个 Python 库,支持以下 CPU 变体。选择您的 CPU 类型以查看供应商特定的说明: Intel/AMD x86 vLLM 最初支持在 x86 CPU 平台上进行基本模型推理和服务,支持的数据类型包括 FP32、FP16 和 BF16。 注意 此设备没有预构建的 wheel 包或镜像,因此您必须从源代码构建 v…...
【CSS进阶】常见的页面自适应的方法
在前端开发中,自适应布局(Responsive Design)是一种让网页能够适应不同屏幕尺寸、设备和分辨率的技术。常见的自适应布局方法包括 流式布局、弹性布局(Flexbox)、栅格布局(Grid)、媒体查询&…...
Java编程语言:从基础到高级应用的全面探索
在当今的软件开发领域中,Java无疑是一种极为流行且强大的编程语言。自1995年由Sun Microsystems推出以来,Java凭借其跨平台性、面向对象特性和丰富的API库,迅速成为企业级应用开发的首选语言。本文将带您从Java的基础语法入手,逐步…...
计算机视觉:神经网络实战之手势识别(附代码)
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章࿱…...
linux 面试题
1. 文件与目录操作 ls 功能:列出目录内容 常用参数: -l:长格式显示(权限、大小、时间等)-a:显示隐藏文件(以.开头的文件)-h:以易读格式显示文件大小(如KB/…...
利用websocket检测网络连接稳定性
浏览器中打开F12,控制台中输入以下内容 > 回车 > 等待结果 连接关闭 表示断网 let reconnectDelay 1000; // 初始重连间隔 let pingInterval null; let socketManuallyClosed false; // 标志是否手动关闭function createWebSocket() {if (socketManuallyCl…...
Go入门之数组与切片
var arr1 [...]int{1, 2, 3}fmt.Println(len(arr1)) 数组长度不能扩展 var arr2 [...]int{0: 100, 5: 101}fmt.Println(len(arr2)) } 指定索引初始化 可以通过for和range遍历 值类型:基本数据类型和数组都是值类型,改变副本的值不会改变本身的值 切片为引用数…...
《Nuxt.js 实战:从放弃到入门》六、打造个性化文字转图片工具
在当今短视频的时代,将文字转化为图片是一个常见且实用的需求,无论是用于社交媒体分享、设计宣传材料,还是制作个性化的视觉内容。今天,我们就来深入剖析一个使用 Vue 3 和 ElementPlus 构建的文字转图片工具的代码…...
软硬链接?
目录 1. 硬链接(Hard Link) 2. 软链接(Symbolic Link,符号链接) 总结: 1. 硬链接(Hard Link) 定义: 硬链接是直接指向文件数据块(inode)的链接。…...
轻松搭建本地大语言模型(二)Open-WebUI安装与使用
文章目录 前置条件目标一、安装 Open-WebUI使用 Docker 部署 二、使用 Open-WebUI(一)访问Open-WebUI(二)注册账号(三)模型选择(四)交互 四、常见问题(一)容器…...
windows Redis Insight 如何查看宝塔docker里的redis数据
1、ping 命令用于测试网络连通性,它只需要目标 IP 地址作为参数,不需要端口号。正确的命令如下: ping 公网地址2、使用 Telnet 测试端口连通性 telnet 公网地址 端口 telnet 47.108.67.228 6379如果连接成功,窗口会变为空白&am…...
Python高级语法之urllib
目录: 1、爬虫的介绍2、urllib的使用2.1、urllib的异常捕获2.2、urllib的实现微博cookie登陆2.3、urllib的handler处理器2.4、urllib的代理服务器2.5、urllib的代理服务池 1、爬虫的介绍 2、urllib的使用 2.1、urllib的异常捕获 2.2、urllib的实现微博cookie登陆 2…...
word$deepseep
1、进入官网地址。 DeepSeek 2、进入DeepSeek的API文档 3、点击DeepSeek开放平台左侧的“API Keys”, 再点击“创建API Key” 4、在弹出的对话框中,输入自己的API Key名称,点击创建。 sk-0385cad5e19346a0a4ac8b7f0d7be428 5、打开Word文档。 6、Word找…...
【koa】05-koa+mysql实现数据库集成:连接和增删改查
前言 前面我们已经介绍了第二阶段的第1-4点内容,本篇介绍第5点内容:数据库集成(koamysql) 也是第二阶段内容的完结。 一、学习目标 在koa项目中正常连接数据库,对数据表进行增删改查的操作。 二、操作步骤 本篇文章…...
【深度学习】分布偏移纠正
分布偏移纠正 正如我们所讨论的,在许多情况下训练和测试分布 P ( x , y ) P(\mathbf{x}, y) P(x,y)是不同的。 在一些情况下,我们很幸运,不管协变量、标签或概念如何发生偏移,模型都能正常工作。 在另一些情况下,我们…...
数据结构_前言
本次我们将进入一个新的阶段啦~ 要注意哦: 在学数据结构之前,我们要先掌握c语言中所学的指针、结构体、内存的存储这几部分,如果还没太掌握的话,那记得去复习回顾一下噢。 下面我们就一起进入数据结构的学习吧! 知识…...
spark任务运行
运行环境 在这里插入代码片 [roothadoop000 conf]# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01)[roothadoop000 conf]# echo $JAVA_HOME /home/hadoop/app/jdk1.8.0_144[roothadoop000 conf]# vi spark-env.sh …...
由because it is a JDK dynamic proxy that implements温习Spring的代理
由because it is a JDK dynamic proxy that implements温习Spring的代理 项目场景原因分析1、报错位置2、错误原因3、业务需求 解决方案1、注入CGlib代理2、取出原生对象 项目场景 昨日在启动一个SpringBoot项目时,发现启动失败,并在日志中出现了这样的…...
mac相关命令
显示和隐藏usr等隐藏文件文件 terminal输入: defaults write com.apple.Finder AppleShowAllFiles YESdefaults write com.apple.Finder AppleShowAllFiles NO让.bashrc每次启动shell自动生效 编辑vim ~/.bash_profile 文件, 加上 if [ -f ~/.bashrc ]; then. ~/.bashrc fi注…...
Banana Pi OpenWRT One 官方路由器的第一印象
OpenWRT One是OpenWRT开源社区推出的首款官方开发板,与Banana Pi社区共同设计,由Banana Pi制造和发行。路由器采用蓝色铝合金外壳,质感极佳,视觉效果远超宣传图。整体设计简洁,呈长方形,虽然不是特别时尚&a…...
基于SpringBoot的“高考志愿智能推荐系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“高考志愿智能推荐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 系统首页界面 系统注册页…...
探索Hugging Face:开源AI社区的核心工具与应用实践
引言:AI民主化的先锋 在自然语言处理(NLP)领域,Hugging Face已成为开源社区的代名词。这个成立于2016年的平台,通过提供易用的工具和丰富的预训练模型库,彻底改变了开发者使用和部署AI模型的方式。截至202…...
SVM对偶问题
1、对偶问题数学基础 对偶问题:在线性规划中,每一个线性规划问题(称为原问题)都有一个与之对应的对偶问题。从数学形式上看,如果原问题是求解一个线性目标函数的最大值(或最小值),在满足一系列线性不等式&…...
萃取的实现(三)
探测成员 基于SFINAE,判断一个给定类型T,是否含有名为x的成员。 探测类型成员 判断一个给定类型T,是否含有类型成员size_type,源码如下: #include <type_traits> #include <iostream> #include <vect…...
nodejs版本管理,使用 nvm 删除node版本,要删除 Node.js 的某个版本详细操作
要删除 Node.js 的某个版本并保持 Node Version Manager (nvm) 的管理整洁,可以按以下步骤操作: 步骤 1:查看已安装的 Node.js 版本 nvm ls这会列出你通过 nvm 安装的所有 Node.js 版本。输出类似于: -> v18.17.1v16.20…...