JAVA成员变量首字母小写,第二个字母大写报错问题(原因:Lombok与Spring冲突)
1、问题现象:
JAVA类里定义成员变量使用首字母小写,第二个字母大写
@Getter
@Setter
public class BrandQueryObject extends QueryObject{private String pName;
}
结果页面报错,无法找到类型为 cn.wolfcode.ssm.query.BrandQueryObject 的对象上的属性 pName:

2、问题原因:
针对首字母小写,第二个字母大写的这种驼峰命名时,使用Lombok的@Getter和@Setter注解生成的getter和setter方法分别是:
public String getIPhone() {return iPhone;
}public void setIPhone(String iPhone) {this.iPhone = iPhone;
}
而正常场景下及Spring中对象的getter和setter方法应该是:
public String getiPhone() {return iPhone;
}public void setiPhone(String iPhone) {this.iPhone = iPhone;
}
也就是说Lombok与Spring针对这种首字母小写,第二个字母大写的对象的解析是不同的,而这也就自然而然影响到默认的Jackson的解析,导致返回给前端的属性名称不是我们预期中的名称,则前端判断取得的值为null,继而报错。
3、问题探讨与官方态度:
详见该文章:多年前就有人已经在lombok的github提出过对应的issue
4、解决方案:
- 方案一:不使用该格式命名的成员变量,即避免首字母小写后续直接跟第二个字母大写的命名。
- 方案二:利用Idea生成符合Spring规范的get/set,即手动生成get和set方法,或者使用编译器自动生成的:
public String getpName() {return pName;}public void setpName(String pName) {this.pName = pName;}
- 方案三:利用@JsonProperty(value = “xIndex”),强制Jackson在反序列化时给属性重新命名
完事收工,THX
相关文章:
JAVA成员变量首字母小写,第二个字母大写报错问题(原因:Lombok与Spring冲突)
1、问题现象: JAVA类里定义成员变量使用首字母小写,第二个字母大写 Getter Setter public class BrandQueryObject extends QueryObject{private String pName; }结果页面报错,无法找到类型为 cn.wolfcode.ssm.query.BrandQueryObject 的对象…...
Python入门教程 |Python 错误和异常
Python3 错误和异常 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断…...
API商品接口对接使用:从理论到实践
随着电子商务的飞速发展,API商品接口已成为现代电子商务应用程序不可或缺的一部分。通过API商品接口,开发者可以轻松地从其他应用程序或服务中获取商品信息,实现快速、高效的电子商务功能。本文将探讨API商品接口的概念、对接使用的方法以及一…...
解决stable diffusion webui1.6 wd1.4 tagger加载失败的问题
由于webui源码的变化,需要修改两个地方的import 1.tagger/ui.py # 第十行 # from webui import wrap_gradio_gpu_call # 原代码 from modules.call_queue import wrap_gradio_gpu_call1.preload.py # 第4行开始 # from modules.shared import models_path # 原…...
Python学习-实现简单的http服务
基于Python实现一个简单的HttpServer,当用户在浏览器中输入IP地址:8000时,则会返回index.html页面内容,访问其它信息,则会返回错误信息(404) """ httpserver v1.0 1.获取来自浏览器的请求, 2.判断如果请求内容是 …...
#循循渐进学51单片机#变量进阶与点阵LED#not.6
1、掌握变量的作用域及存储类别。 局部变量 函数内部声明的变量,只在函数内部有效,在本函数以外是不能使用的,叫局部变量。 全局变量 在函数外部声明的变量就是全局变量,一个源程序可以包含一个或多个函数,全局变量…...
访问者模式
图片转载自 #include<iostream> using namespace std; #include<list> /*模板工厂单例化,所有的商品被注册进工厂中*/ /*访问者模式(行为型模式) 访问者,被访问者 visit accept 让访问变成一种操作,不同…...
epoll 的实现
epoll 这么好,为什么迟至 2.6 版本的 kernel 才支持(epoll manual: The epoll API was introduced in Linux kernel 2.5.44.)?2.4 版本的 kernel 不支持 epoll? 原因很简单,epoll 没什么神奇的。在早期没有太多的并发连接要处理&…...
怎么用excel管理固定资产
在当今的数字时代,我们已经习惯了使用各种电子工具来提高我们的生产力。其中,Excel无疑是一个强大的工具,它不仅可以帮助我们处理数据,还可以用来进行复杂的计算和分析。然而,你可能不知道的是,Excel也可以…...
记录crack某IDE插件过程
声明:本文仅记录学习过程,已对关键位置脱敏处理,未提供任何工具,请支持正版。 反编译jar包 使用cfr进行对插件核心jar包MyBxxxxxx-obfuss.jar进行反编译,在本地生成a.txt。 java -jar cfr-0.152.jar MyBxxxx-obfuss.…...
Android DEX相关,ART加载OAT文件
android .dex文件,对于Android DEX文件详细说明 Android dex、odex、oat、vdex、art区别 Android下的DEX文件和SO文件梳理总结 Android[art]-Android dex,odex,oat,vdex,art文件结构学习总结 第四章 常见的 Android 文件格式&…...
laravel框架 - 安装初步使用学习 composer安装
一、什么是laravel框架 Laravel框架可以开发各种不同类型的项目,内容管理系统(Content Management System,CMS)是一种比较典型的项目,常见的网站类型(如门户、新闻、博客、文章等)都可以利用CM…...
API实战教程:使用身份证OCR识别API构建一个应用
1. 引言 你是否曾经想过,只需拍一张身份证的照片,就能自动读取上面的所有信息?今天,我们要介绍的就是这样一个神奇的工具:身份证OCR识别API。不管你是技术小白还是初学者,跟着我们的步骤,你都可…...
前端-layui动态渲染表格行列与复杂表头合并
说在前面: 最近一直在用layui处理表格 写的有些代码感觉还挺有用的,顺便记录下来方便以后查看使用; HTML处代码 拿到id 渲染位置表格 <div class"layui-table-body salaryTable"><table class"layui-table" i…...
IDM(Internet Download Manager)下载器2024最新版本如何下载?
IDM(Internet Download Manager)下载器能够兼容支持多种浏览器进行文件下载,很多时候只要复制一个地址IDM的下载弹窗就自动弹出来,有时候不需要下载的时候也会弹,时间久了就会感觉很烦,不过这个问题其实可以…...
前端综合练手小项目
导读 本篇文章主要以小项目的方式展开,其中给出的代码中均包含详细地注释,大家可以参照理解。下面4个小项目中均包含有 HTML、CSS、JavaScript 等相关知识,可以拿来练手,系统提升一下自己的前端开发能力。 废话少说,…...
接口优化1
接口优化 文章目录 接口优化1. 内容概述2. 集成RabbitMQ2.1 下载2.2 SpringBoot集成RabbitMQ 快速入门1.相关配置2.创建发送者者和接收者 2.3 rabbitmq四种交换模式2.4 秒杀接口优化 1. 内容概述 核心思路:减少对数据库的访问,利用Redis的高并发特性来实现。 系统初…...
【无公网IP内网穿透】 搭建Emby媒体库服务器并远程访问「家庭私人影院」
目录 1.前言 2. Emby网站搭建 2.1. Emby下载和安装 2.2 Emby网页测试 3. 本地网页发布 3.1 注册并安装cpolar内网穿透 3.2 Cpolar云端设置 3.3 Cpolar内网穿透本地设置 4.公网访问测试 5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力…...
QML android 采集手机传感器数据 并通过udp 发送
利用 qt 开发 安卓 app ,采集手机传感器数据 并通过udp 发送 #ifndef UDPLINK_H #define UDPLINK_H#include <QObject> #include <QUdpSocket> #include <QHostAddress>class UdpLink : public QObject {Q_OBJECT public:explicit UdpLink(QObjec…...
stableDiffusion安装
下载git 下载python-3.10.6版本 clone git至本地 使用git clone命令 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 更换pip源为为百度镜像 pip config --global set global.index-url https://mirror.baidu.com/pypi/simple 最后的镜像源链接 阿里云 h…...
AI00 RWKV Server:基于Vulkan的轻量级大模型本地推理部署指南
1. 项目概述:一个为RWKV模型打造的轻量级、高性能推理服务器 如果你正在寻找一个能让你在个人电脑上,甚至是集成显卡上,就能流畅运行大语言模型(LLM)的解决方案,那么AI00 RWKV Server绝对值得你花时间深入…...
工业现场故障排查:从温度敏感故障到CMOS浮空输入根因分析
1. 项目概述:一个“脾气暴躁”的堆垛起重机 在工业现场,最让人头疼的往往不是那些彻底罢工的设备,而是那些“时好时坏”、“看心情工作”的间歇性故障。它们像幽灵一样,在你想复现问题时消失得无影无踪,等你一离开又悄…...
CoPaw:打造本地优先的AI工作台,兼顾隐私与效率
1. 项目概述:一个真正属于你的本地AI工作台如果你和我一样,对AI助手既爱又恨——爱它的效率,恨它的隐私风险和数据不可控——那么今天分享的这个项目,你一定会感兴趣。最近我在GitHub上发现了一个名为CoPaw的开源桌面应用…...
QMCDecode:解锁QQ音乐加密文件,让音乐真正属于你
QMCDecode:解锁QQ音乐加密文件,让音乐真正属于你 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,…...
汽车软件化演进:从原生应用到手机集成的技术路径与实战解析
1. 从机械到智能:汽车软件化的十字路口十年前,当福特和通用汽车开始在硅谷和南加州大肆招聘软件工程师时,很多人可能还没意识到,这不仅仅是一次普通的“招兵买马”,而是一场深刻改变汽车工业基因的序曲。2014年那会儿&…...
ESXi 6.7 能直接升级到 8.0 吗?正确升级路径一次讲清
很多运维新手在服务器虚拟化运维中,想把老旧的 ESXi 6.7 主机直接跨版本升级到 ESXi 8.0,省去中间步骤、节约时间成本,但实际操作中总会出现升级报错、镜像不兼容、引导失败等问题。其实官方明确规定:ESXi 6.7 不能直接越级升级到…...
半导体与EDA公司成长路径:从300万到5000万营收的实战指南
1. 从初创到巨头:一场关于半导体与EDA公司成长路径的深度对话如果你正在半导体、EDA(电子设计自动化)或者更广泛的硬科技领域创业,或者你在一家快速成长的科技公司担任核心角色,那么有一个问题你肯定反复思考过&#x…...
基于Arduino Pro Micro的薄膜键盘矩阵改造:DIY低成本模拟飞行外设
1. 项目概述:为Falcon BMS打造一款经济型多功能按键面板如果你是一名《Falcon BMS》的飞行模拟爱好者,同时又对硬件DIY抱有热情,那么你很可能和我一样,对市面上那些动辄数百甚至上千元的专业模拟飞行外设感到望而却步。尤其是像F-…...
Narrative-craft:工程化叙事框架的设计、实现与集成指南
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Narrative-craft”,作者是chengjialu8888。光看名字,你可能会觉得这又是一个讲“叙事”或者“故事创作”的抽象工具。但点进去仔细研究后,我发现它远不止于此。这…...
从经典工程恶作剧看理论派与实践派的思维碰撞与团队协作
1. 项目概述:一场经典的工程恶作剧及其启示在任何一个技术团队里,总有一些故事会口口相传,成为团队文化的一部分。我今天想分享的这个故事,发生在上世纪80年代初,一个微电路设计小组里。它无关乎高深的技术突破&#x…...
