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

“爱生活”小项目问题总结

目录

爱生活小程序

1.用户登录和注册模块遇到的问题

1.1在使用密码加密时,注册新用户,客户端响应401的问题

原因:

正确操作:

1.2在设置密码加密后,发送post登录请求,服务器出现报错java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not "opens java.lang.invoke" to unnamed module @dbf57b3

InaccessibleObjectException 错误的原因

1.3使用没有加密的密码登录,出现Encoded password does not look like BCrypt

原因:

解决方案:

步骤:

实现效果:

2.广场发布动态遇到的问题

2.1在广场动态实体类中,我定义了一个属性imagesList,其目的是为了在上传多个图片时更好操作,但在上传图片文件时出现了报错,且在数据库中images列没有数据,Error updating database. Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'imageList'.

原因:

解决方案:

最终实现效果:

忽视的细节:

2.2文件超出默认大小限制,抛出Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException:

解决方案:


爱生活小程序

1.用户登录和注册模块遇到的问题

1.1在使用密码加密时,注册新用户,客户端响应401的问题


原因:

是我的SecurityConfig.java 配置类仅定义了一个 PasswordEncoder Bean(用于密码加密),但 没有配置 Spring Security 的请求安全策略,所以导致的 /user/login 或其他接口出现 401/403 权限问题

正确操作:

让密码加密工具类继承WebSecurityConfigurerAdapter,并重写configure(HttpSecurity http)方法


再次发送注册请求,数据库中的密码即可显示为加密的状态



1.2在设置密码加密后,发送post登录请求,服务器出现报错java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not "opens java.lang.invoke" to unnamed module @dbf57b3


问题描述:

java.lang.reflect.InaccessibleObjectException 是一种反射相关的运行时异常,通常发生在尝试通过反射访问类的私有字段或方法时。这种错误的根本原因是 Java 的模块化系统 (JPMS, Java Platform Module System),自 Java 9 起引入。模块化的目的是增强封装性和安全性,因此默认情况下,某些包不会对外部模块开放其内部实现细节。

当程序试图通过反射修改 private final 字段(如 capturingClass 或其他类似的字段),而这些字段所在的模块未显式声明对其它模块开放时,就会抛出此异常。

InaccessibleObjectException 错误的原因

这个错误是由于 Java 模块系统的强封装性导致的,具体是 MyBatis-Plus 在尝试通过反射访问 java.lang.invoke.SerializedLambda 类的私有字段时被阻止。  


询问了AI后,给出的答案是JDK版本与SpringBoot的版本不匹配:

  • 根据 Spring 官方文档和发布说明: Spring Boot 2.5.x 正式支持的最高 JDK 版本是 JDK 16

  • 使用 JDK 17 运行 Spring Boot 2.5.x 应用可能会导致以下问题: 反射访问异常(如 java.lang.reflect.InaccessibleObjectException) 模块系统限制(JPMS)引发的类加载失败 第三方库或插件不兼容 JDK 17 新特性

    于是我尝试将SpringBoot升级到更高版本,更稳定的版本2.7.18

but,仍旧报错....


继续修改,将MybatisPlus版本升级为更高的 3.5.0+ ,出现了一个新的问题,Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2025-05-07 17:45:08.072 ERROR 17712 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController' defined in file


解决方案:

统一MybatisPlus的版本,这样就解决了所有问题

但在再次发送登录的请求后,虽然系统能正常运行但还是出现了异常:Unable to make field private final java.lang.Class...

于是,我将不再使用手动构造QureyWrapper,而是转换为 lambdaQuery().eq(...) ,之后的问题也就迎刃而解了。


1.3使用没有加密的密码登录,出现Encoded password does not look like BCrypt

原因:
  • 在发送登录请求中发送的密码在数据库中不是有效的BCrypt格式(可能存储的是明文或使用其他加密方式)

解决方案:

启动时自动迁移,即在系统启动时就检测有无密码未加密,若未加密,则进行加密

步骤:
  1. 添加一个数据迁移方法到 UserServiceImpl

说明: 使用 @PostConstruct 在 Bean 初始化后执行。 判断密码是否为 BCrypt 格式(如果不是则加密)。 更新数据库中的密码字段


实现效果:

成功将所有用户的密码进行加密!!

再次发送请求,登陆成功!!!!


2.广场发布动态遇到的问题

2.1在广场动态实体类中,我定义了一个属性imagesList,其目的是为了在上传多个图片时更好操作,但在上传图片文件时出现了报错,且在数据库中images列没有数据,Error updating database. Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'imageList'.


原因:
  1. 定义的imagesList在数据库中没有这个字段,而MyBatis Plus 会尝试将实体类中所有非空字段映射到数据库表字段,当他发现数据库中没有这个字段时就会报这个错,并且在业务逻辑类中调用了方法dynamic.setImageList(imageUrls);


解决方案:
  1. 确保 MyBatis 忽略 imageList 字段

  2. 避免设置 imageList 字段,即不要使用dynamic.setImageList(imageUrls);


最终实现效果:

忽视的细节:

上传文件时需要确认请求头是否为 Content-Type: multipart/form-data,否则也会导致数据库images为null的情况。


2.2文件超出默认大小限制,抛出Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException:

The field images exceeds its maximum permitted size of 1048576 bytes.


解决方案:

修改 application.yml 中的上传大小限制

这样可以支持最大单个文件上传为 10MB,适用于大多数图片上传场景。

相关文章:

“爱生活”小项目问题总结

目录 爱生活小程序 1.用户登录和注册模块遇到的问题 1.1在使用密码加密时,注册新用户,客户端响应401的问题 原因: 正确操作: 1.2在设置密码加密后,发送post登录请求,服务器出现报错java.lang.reflect.…...

实战项目5(08)

目录 任务场景一 【r1配置】 【r2配置】 【r3配置】 ​​​​​​​任务场景二 【r1配置】 【r2配置】 ​​​​​​​任务场景一 按照下图完成网络拓扑搭建和配置 任务要求: 通过在路由器R1、R2和R3上配置静态路由,实现网络中各终端PC能够正常…...

LeetCode 1550.存在连续三个奇数的数组:遍历

【LetMeFly】1550.存在连续三个奇数的数组:遍历 力扣题目链接:https://leetcode.cn/problems/three-consecutive-odds/ 给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 tr…...

大模型在肾肿瘤诊疗全流程预测及方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 研究创新点 1.4 研究方法与数据来源 二、肾肿瘤概述与大模型技术 2.1 肾肿瘤相关知识 2.1.1 定义、分类及症状 2.1.2 发病机制与影响因素 2.1.3 治疗现状与挑战 2.2 大模型技术原理及医疗应用现状 2.2.1 大模型…...

5月11号.

导入Maven项目: Maven依赖管理: 生命周期: 测试: 断言: Junit常见注解:...

数据库基础概述

一、基础概述 1.数据库 (1)概述 数据库就是存储数据的仓库,其本质是一个文件系统,按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作使用数据库可以高效的…...

Hibernate 性能优化:告别慢查询,提升数据库访问性能

Hibernate 性能优化:告别慢查询,提升数据库访问性能 Hibernate 作为一款流行的 ORM 框架,极大地简化了 Java 应用程序与数据库之间的交互,但如果不进行合理优化,性能瓶颈在高并发场景下就会暴露无遗。本文将深入探讨 …...

【JavaWeb+后端常用部件】

回顾内容看: 一、获取请求参数的方法 参考:[JavaWeb]——获取请求参数的方式(全面!!!)_java 获取请求参数-CSDN博客 Json格式的Body加备注RequestBody{id}动态路径加备注PathVariableid?&name?直接接收就好 i…...

Playwright 简介

Playwright 简介 说明:本教程基于 @playwright/test@1.51.1 版本编写,内容和目录结构与该版本官方推荐保持一致。 适合人群与学习路径 适合谁? 想入门自动化测试的测试工程师需要跨浏览器、移动端自动化的开发者希望提升测试效率、减少维护成本的团队学习建议 跟着文档动手实…...

# 2-STM32-复位和时钟控制RCC

STM32-复位和时钟控制RCC 2-STM32-复位和时钟控制RCC摘要说明本文参考资料如下: 一、STM32最小系统回顾STM32F103C8T6核心板原理图 二、复位三、时钟3.1 时钟树3.2 STM32启动过程3.2 SystemInit()函数3.2.1 SystemInit()第1句:3.2.2 SystemInit()第2句&a…...

idea中的vcs不见了,如何解决

按如下顺序依次找 filesettingsversion controldirectory mappings点击号vcs 改为Subversion 省流:看如下图...

元数据分类

元数据(Metadata)是描述数据的数据,通常分为 业务元数据、技术元数据 和 操作元数据。这三类元数据从不同维度对数据进行描述和管理,以下是它们的定义、作用和示例: 1. 业务元数据(Business Metadata&#…...

【C语言】(9)—指针3

文章目录 一、字符指针的深入理解二、数组指针详解三、二维数组传参的本质四、函数指针及其应用五、函数指针数组与转移表 一、字符指针的深入理解 1.1 字符指针的基本使用 字符指针(char*)是指向字符类型数据的指针,它有两种常见的使用方式: // 方式一…...

拍电影为什么常用绿幕?认识色度键控(Chroma Key)技术

许多电影拍摄使用绿幕技术,其核心原因在于它通过色度键控(Chroma Key)技术实现背景替换,从而为创作提供高度灵活性、成本效益和视觉效果的可控性。以下从技术原理、应用场景、优势及与其他技术的对比等方面展开分析: 一、绿幕技术的基本原理 绿幕技术的核心是色度键控(C…...

【iOS】Tagged Pointer

【iOS】Tagged Pointer 文章目录 【iOS】Tagged Pointer前言认识Tagged Pointer使用案例结构isa指针经典面试题 前言 在之前的学习中笔者在字符串章节简单了解过这个Tagged Pointer后面笔者就没在多了解这部分内容,今天决定比较系统的学习一下有关于这部分内容的知识. 认识Tagg…...

17.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--loki

在微服务中,日志是非常重要的组成部分。它不仅可以帮助我们排查问题,还可以帮助我们分析系统的性能和使用情况。 一、loki简介 loki是一个开源的日志聚合系统,它可以帮助我们高效地收集、存储和分析日志数据。loki的设计理念是“简单、快速…...

OpenWrt开发第8篇:树莓派开发板做无线接入点

文/指尖动听知识库-谷谷 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:Openwrt开发-基于Raspberry Pi 4B开发板 树莓派开发板作为无线接入点的时候,可以通过电脑和手机打开WiFi功能搜索到相应打开的WiFi; 1 通过Web操作界面开启wifi 1...

电源架构与太阳能充电器电路设计分析

一、电源架构基本工作原理分析 #mermaid-svg-mEaBEAY5xdCMN9Uy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mEaBEAY5xdCMN9Uy .error-icon{fill:#552222;}#mermaid-svg-mEaBEAY5xdCMN9Uy .error-text{fill:#5522…...

英语句型结构

句型类型结构示例示例解释应用场合简单句主谓(SV)The bird flies.“The bird” 是主语,“flies” 是不及物动词作谓语,描述鸟 “飞” 的动作。描述事物基本行为,如动物习性、自然现象等。主谓宾(SVO&#x…...

什么是卷积神经网络

卷积神经网络(CNN)的全面解析 卷积神经网络(Convolutional Neural Network, CNN)是深度学习领域最成功的模型之一,尤其在图像处理和模式识别任务中表现卓越。以下从基本结构、核心组件、发展历程、应用场景、数学基础、训练方法及优缺点等方面展开详述。 一、基本定义与核…...

操作系统: 第三章节 :中断和处理机调度

一:中断与中断系统 -1:中断的概念: 在程序运行过程中出现某紧急事件,必须中止当前正在运行的程序,转去处理这个事件,然后再恢复原来运行的程序,这一过程称为中断. -2:中断装置(硬件): 发现并相应中断的硬件结构: 工作: -----…...

嵌入式硬件篇---IIC

文章目录 前言1. IC协议基础1.1 物理层特性两根信号线SCLSDA支持多主多从 标准模式电平 1.2 通信流程起始条件(Start Condition)从机地址(Slave Address)应答(ACK/NACK)数据传输:停止条件&#…...

SAP学习笔记 - 开发08 - Eclipse连接到 BTP Cockpit实例

有关BTP,之前学了一点儿,今天继续学习。 SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)_sap btp开发-CSDN博客 如何在Eclipse中连接BTP Cockpit开发环境实例。 1&#xf…...

安装typescript时,npm install -g typescript报错

删除C:\Users\用户\下的.npmrc文件,如果你的没有,看是不是因为将隐藏的项目勾选上了,然后去掉勾选。 重新输入...

支持selenium的chrome driver更新到136.0.7103.92

最近chrome释放新版本:136.0.7103.92 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only su…...

Java在人工智能中的应用:机器学习与深度学习技术探讨

根据您提供的知识库内容,我发现其中主要涉及机器学习和深度学习的内容,而您的文章是关于Java面试技术的。两者的主题并不直接相关,因此无法直接使用知识库中的信息来润色您的文章。 如果您希望将机器学习和深度学习的内容融入文章中&#xf…...

C++23 新特性:深入解析 std::views::join_with(P2441R2)

文章目录 std::views::join_with 基本用法处理字符串集合std::views::join_with 与其他视图的结合使用总结 随着C23标准的逐步推进,我们迎来了许多令人兴奋的新特性,其中之一就是 std::views::join_with。这个新特性是C23中引入的视图适配器&#xff0c…...

【工作记录】crmeb后端项目打开、运行

1、下载代码 1)安装git 不再详述 2)git拉代码 项目地址如下,在vscode-分支中拉代码 # 克隆项目 git clone https://gitee.com/ZhongBangKeJi/crmeb_java/ 截图如下是已经成功拉下来 注意安装对应版本 2、maven配置 安装配置见&#x…...

前端浏览器判断设备类型的方法

前端浏览器判断设备类型的方法 在前端开发中,判断设备类型(如手机、平板、桌面电脑)有多种方法,以下是常用的几种方式: 1. 使用 User Agent 检测 通过 navigator.userAgent 获取用户代理字符串进行判断:…...

python 新闻 api + react js 客户端。

1. 起因, 目的: 前面写了几个爬虫。 那么这些数据怎么使用。使用 api , 看看到底有哪些新闻。感受:最初只是一个想法,然而实现的过程中却很枯燥乏味, 甚至怀疑为什么要做这个事情. 2. 先看效果 效果就是能行。 3.…...

Vivado中可新建的工程类型解析

以下是Vivado中可新建的工程类型解析,按用途和场景分类说明: 1. RTL Project(RTL工程) 用途:从零开始基于RTL代码(Verilog/VHDL)设计FPGA逻辑,覆盖完整开发流程。适用阶段&#xff…...

TypeScript 中的泛型工具详解

TypeScript 提供了一系列强大的泛型工具类型&#xff0c;可以帮助我们更灵活地操作和转换类型。以下是主要的泛型工具类型及其用法&#xff1a; 1. 基础工具类型 1.1. Partial<T> 将类型 T 的所有属性变为可选。 interface User {name: string;age: number; }type Pa…...

OpenCV进阶操作:指纹验证、识别

文章目录 前言一、指纹验证1、什么是指纹验证2、流程步骤 二、使用步骤&#xff08;案例&#xff09;三、指纹识别&#xff08;案例&#xff09;1、这是我们要识别的指纹库2、这是待识别的指纹图3、代码4、结果 总结 前言 指纹识别作为生物识别领域的核心技术之一&#xff0c;…...

js前端分片传输大文件+mongoose后端解析

最近一直在完善mongoose做webserver的项目&#xff0c;其中程序升级要通过前端传输升级包到服务器。 因为第一次写前端代码&#xff0c;分片传输的逻辑&#xff0c;网上一堆&#xff0c;大同小异&#xff0c;而且版本啊&#xff0c;API不一致的问题&#xff0c;导致头疼的很。后…...

IPLOOK超轻量核心网,助力5G专网和MEC边缘快速落地

随着5G深入千行百业&#xff0c;行业客户对核心网的灵活性、可控性和部署效率提出了更高要求。IPLOOK面向数字化转型需求&#xff0c;推出了超轻量级核心网解决方案&#xff0c;具备体积小、资源占用少、部署灵活、易于维护等特性&#xff0c;广泛适用于专网、实验室、MEC边缘云…...

Spring框架(一)

Spring框架是Java开发中最为流行的框架之一&#xff0c;它以其强大的功能和灵活的设计&#xff0c;极大地简化了企业级应用的开发。本文将详细介绍Spring框架的核心概念、核心技术、依赖注入、多配置文件方式、开发程序的方式、IOC注解方式以及Spring与JUnit的整合。 目录 一、…...

Redis 基础详解:从入门到精通

在当今互联网应用开发领域&#xff0c;数据存储与处理的性能和效率至关重要。Redis&#xff08;Remote Dictionary Server&#xff09;作为一款开源的、基于内存的键值存储系统&#xff0c;凭借其出色的性能和丰富的功能&#xff0c;被广泛应用于数据库、缓存、消息中间件等场景…...

24、TypeScript:预言家之书——React 19 类型系统

一、预言家的本质 "TypeScript是魔法世界的预言家之书&#xff0c;用静态类型编织代码的命运轨迹&#xff01;" 霍格沃茨符文研究院的巫师挥动魔杖&#xff0c;类型注解与泛型的星轨在空中交织成防护矩阵。 ——基于《国际魔法联合会》第12号类型协议&#xff0c;Ty…...

RabbitMQ--进阶篇

RabbitMQ 客户端整合Spring Boot 添加相关的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 编写配置文件&#xff0c;配置RabbitMQ的服务信息 spri…...

【GESP真题解析】第 19 集 GESP 二级 2025 年 3 月编程题 1:等差矩阵

大家好&#xff0c;我是莫小特。 这篇文章给大家分享 GESP 二级 2025 年 3 月编程题第 1 题&#xff1a;等差矩阵。 题目链接 洛谷链接&#xff1a;B4259 等差矩阵 一、完成输入 根据题意&#xff0c;一行&#xff0c;两个正整数 n&#xff0c;m。 n 和 m的数据范围&#xf…...

电池单元和电极性能

电芯设计中的挑战 对于电池制造商来说&#xff0c;提高电池能量和功率密度至关重要。在高功率密度和长循环寿命之间取得平衡是电池设计中的关键挑战&#xff0c;通常需要仔细优化材料、电极结构和热管理系统。另一个关键挑战是通过优化重量体积比来降低电池单元的总体成本。 工…...

MATLAB 矩阵与数组操作基础教程

文章目录 前言环境配置一、创建矩阵与数组&#xff08;一&#xff09;直接输入法&#xff08;二&#xff09;特殊矩阵生成函数&#xff08;三&#xff09;使用冒号表达式创建数组 二、矩阵与数组的基本操作&#xff08;一&#xff09;访问元素&#xff08;二&#xff09;修改元…...

理解 Token 索引 vs 字符位置

以下是对“理解 Token 索引与字符位置的区别”的内容整理&#xff0c;条理清晰&#xff0c;结构完整&#xff0c;保持技术细节&#xff0c;方便阅读&#xff0c;无多余解释&#xff1a; &#x1f50d; 理解 Token 索引 vs 字符位置 文本分块方法中返回的索引是 token 索引&…...

【RAG】11种Chunking Strategies分块策略介绍和选择

【今日鸡汤】学习之路上&#xff0c;勤奋是比 “聪明” 远远更珍贵的品质。 参考原文地址&#xff1a;https://masteringllm.medium.com/11-chunking-strategies-for-rag-simplified-visualized-df0dbec8e373 在构建强大的检索增强生成&#xff08;RAG&#xff09;系统时&…...

‌中继器:网络中的“血包”与“加时器”‌

在探讨网络技术时&#xff0c;我们往往会遇到各种专业术语和设备&#xff0c;中继器便是其中之一。然而&#xff0c;对于非技术人员或初学者来说&#xff0c;这些概念可能显得抽象且难以理解。今天&#xff0c;我将通过一个生动的比喻——将中继器比作网络中的“血包”与“加时…...

​证明当||x||=1时,Ax=0的最小二乘解是的最小特征值对应的特征向量​

问题&#xff1a;证明当||x||1时&#xff0c;Ax0的最小二乘解是的最小特征值对应的特征向量。 证明&#xff1a; 上个命题等同于&#xff1a;的最小特征值所对应的特征向量可使得||Ax||最小。以下分别对x为的特征向量和不为的特征向量这两种情况进行证明。 情况1: 若x为的特征…...

AI大模型学习十八、利用Dify+deepseekR1 +本地部署Stable Diffusion搭建 AI 图片生成应用

一、说明 最近在学习Dify工作流的一些玩法&#xff0c;下面将介绍一下Dify Stable Diffusion实现文生图工作流的应用方法 Dify与Stable Diffusion的协同价值 Dify作为低代码AI开发平台的优势&#xff1a;可视化编排、API快速集成 Stable Diffusion的核心能力&#xff1a;高效…...

linux基础操作4------(权限管理)

一.前言 今天我们来讲讲linux的权限管理&#xff0c;比如文件的权限&#xff0c;如果大家看过前面说的app逆向的frida&#xff0c;我们在手机里要给frida&#xff0c;我们都要设置一下chomd 777 frida &#xff0c;这样就给了可执行权限&#xff0c;这就是这一章要讲的&#x…...

Linux数据库篇、第零章_MySQL30周年庆典活动

MySQL考试报名网站 Oracle Training and Certification | Oracle 中国 活动时间 2025年 MySQL的30周年庆典将于2025年举行。MySQL于1995年首次发布&#xff0c;因此其30周年纪念日是2025年。为了庆祝这一里程碑&#xff0c;MySQL将提供免费的课程和认证考试&#xff0c;活动…...

HVV面试题汇总合集

应急响应的命令 Linux ps -aux 查看进程 netstat -antlp 查看端口 top查看 cpu使用情况 Windows tasklist 查看进程 netstat -an 查看端口struts2原理特征 原理: 045:默认的content-type解析器会把用户传来的数据直接当成代码执行&#xff0c;造成rce 特征:ognl表达式&…...