自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 【AI】RAG内存向量索引构建源码全流程解析(LangChain4j)

本文基于 LangChain4j 源码,拆解内存向量索引构建完整闭环流程,整体核心逻辑可一句话概括:通过 EmbeddingStoreIngestor 构建器初始化全套 RAG 核心组件,依托递归文档分割器完成文本分片,再通过嵌入模型将分片文本转为语义向量,最终将原始文本、向量、元数据统一存入线程安全的内存集合,完成可检索的向量索引构建。流程闭环:组件初始化 → 文档递归分割 → 文本向量化 → 内存向量存储索引。默认核心组件。

2026-05-23 17:12:47 22

原创 【AI】了解ChatMemory 底层实现机制

AiService 是 ChatMemory 相关服务的代理核心,对应被框架代理的目标类(AiService 接口实现类),负责串联记忆、模型、对话请求,是 LangChain4J 框架中“接口即服务”的核心实现载体。ChatMemory 多轮对话隔离,完全依赖 K-V 分片 + 唯一 ID 映射结构:ID → 独立消息 List效果:不同会话数据物理隔离、互不干扰、永不串线该机制是所有基于 ChatMemory 的大模型对话系统的标准隔离方案。---顶层ChatMemory接口定义标准行为;实现。

2026-05-20 15:57:04 363

原创 【AI】踩坑LangChain4j集成千问模型:版本适配问题完整解决历程

在开发过程中,需要集成LangChain4j框架调用阿里千问模型,本以为是简单的依赖引入+配置调用,却因版本适配问题踩了一系列坑,耗时许久才成功解决。现将整个排查、解决历程完整记录下来,希望能帮助到遇到同样问题的开发者,少走弯路。

2026-05-19 21:15:30 205

原创 【Python】关于Python安装中,遇到的“0x80070643错误提示“的解决办法

随后,我打开开始菜单,找到Anaconda Prompt,以管理员身份运行,输入conda --version和python --version,两条命令都能正常显示版本号,说明Anaconda和Python都已安装成功,系统修复效果完全达标。安装过程中,系统会自动重启2-3次,期间会有黑屏、转圈的现象,这都是正常的修复部署过程,我全程保持电脑插电,未进行任何多余操作,耐心等待安装完成。(补充)按下Win+R,输入winver回车,快速确认当前系统为预览版,由此排除了使用正式版系统镜像进行修复的可能。

2026-05-18 17:47:13 382

原创 【深入java语句】关于System.out.println();的底层逻辑

在Java学习中,是我们最早接触、最常用的代码之一,几乎每一个入门程序都会用它来打印输出。但说实在之前都只知其然,不知其所以然——为什么输入这行代码就能在控制台看到内容?System.out到底是什么?println()又是如何工作的?本文解答这些疑惑。

2026-04-20 23:27:53 420

原创 【Java】后台显示事务回滚了但实际发现其实是失败的,对于该问题的总结及解决办法(事务回滚失败)

笔者以自己遇到的“删除部门并同步删除关联员工”业务场景为例,典型的失败现象为:执行删除操作时,先成功删除部门数据,但在执行员工删除操作过程中抛出异常,此时期望事务回滚,将已删除的部门数据恢复,最终实现“要么全部删除,要么全部不删除”的效果。但实际结果却是,部门数据已被删除且无法恢复,员工数据未删除,数据出现不一致,事务回滚未生效。异常被手动捕获且未重新抛出:在事务方法内部,若使用try-catch捕获了异常,但未将异常重新抛出,Spring事务管理器会认为方法正常执行完毕,进而提交事务,导致回滚失效。

2026-04-18 22:34:50 448

原创 【Java】Filter与Spring MVC Interceptor(拦截器)核心区别(附带测试源码)

对比维度Filter(过滤器)Spring MVC Interceptor(拦截器)底层依赖依赖Servlet API,属于Servlet规范,脱离Spring可独立运行(原生Filter无需Spring环境)依赖Spring MVC框架,属于Spring体系,必须在Spring容器中运行,可直接使用Spring Bean作用范围全局范围,拦截所有请求(包括静态资源、Servlet、JSP、控制器请求),只要匹配路径均会拦截。

2026-04-18 11:06:40 417

原创 【云服务器】使用阿里云OSS完成文件的上传(附常见报错解决)

网络访问限制:进入RAM用户→AccessKey管理→网络访问限制策略,若设置了IP白名单,添加本地公网IP(百度搜索「IP」即可查看),或直接选择「允许所有公网访问」(测试用);给RAM用户授权:点击「添加授权」,搜索并勾选「AliyunOSSFullAccess」(管理对象存储服务的全量权限,新手推荐,生产环境可配置最小权限),点击「确认新增授权」。点击左侧「用户」→「创建用户」,输入登录名称(如「isme」),勾选「使用永久AccessKey」,点击「确定」;

2026-04-16 21:57:23 439

原创 【Java】从问题到底层代码:从“Data too long for”的错误展开对于关于JSON与Jackson工具的了解

在开发接口新增功能时,遇到了一个问题:使用@RequestBody String name直接接收请求参数时,数据库频繁抛出“Data too long”(数据过长)错误,导致新增操作失败;但将参数接收方式改为实体类接收后,该报错便彻底消失,新增功能恢复正常。经过细致排查,我们终于精准定位到问题根源,并非数据库字段长度不足,而是两种参数接收方式的「数据解析逻辑天差地别」,导致实际传入数据库的内容完全不同。首先明确核心前提:此次报错与数据库字段长度无关。

2026-04-15 21:40:26 327

原创 【Java面试】关于MySQL DQL执行的顺序及其底层代码大概是如何实现的疑问解惑

核心逻辑:对排序后的结果集,按offset和count截取指定行数,返回给客户端。// 核心代码逻辑(对应MySQL源码:sql/sql_select.cc)// 解析LIMIT的偏移量(如LIMIT 10,20中的10)// 解析LIMIT的行数(如LIMIT 10,20中的20)// 截取并返回结果底层关键点:必须先排序,再截断,否则截取的行数是无序的,不符合分页需求。底层优化器可能会做优化(如提前判断是否需要排序),但逻辑顺序始终是最后一步。

2026-04-11 17:51:04 368

原创 【Java】Spring MVC接口执行流程详解:从前端请求到参数封装全解析(前端到底是怎么和后端交互的?)

本文通过具体的GET请求场景,详细拆解了Spring MVC接口的完整执行流程,核心是“请求拦截→路由匹配→参数绑定→方法执行→响应返回”,其中参数自动绑定是Spring MVC的核心优势,也是初学者需要重点掌握的知识点。掌握本文内容后,能够快速排查参数绑定相关的常见问题,理解Spring MVC框架的底层工作逻辑,为后续开发更复杂的接口(如文件上传、复杂参数封装)打下基础。(注:文档部分内容由 AI 生成)

2026-04-09 11:11:06 376

原创 【Linux】Docker部署Jenkins

参考链接: https://github.com/jenkinsci/docker/blob/master/README.md在home目录下创建jenkins相关目录,用于挂载容器数据,避免容器删除后数据丢失。将本地资源目录下的setting.xml文件,上传到 目录中。Jenkins默认需要8380端口(web访问)和50000端口(代理通信、可选),端口开放方式需根据服务器类型区分,避免配置无效。重要提醒:若使用云服务器(阿里云、腾讯云等),无需执行以下防火墙命令,直接在云控制台的安全组中配置入

2026-04-02 23:49:20 417

原创 【Linux】Jenkins连接云服务器Docker失败,全程排查。(注意)

1. 安全提醒:开放端口和安全组授权对象,仅适合测试环境;生产环境建议限制访问IP(仅允许Jenkins所在虚拟机IP),并使用SSH远程部署方案,避免2375端口裸奔带来的安全风险(无认证、无加密,易被攻击)。2. 总结:Jenkins连接云服务器Docker失败,核心问题多集中在「Docker远程监听配置」和「网络拦截」。终极办法就是通过开放0.0.0.0:2375端口,解决远程访问问题,配合防火墙、安全组配置,快速实现Jenkins与Docker的远程连接,全程步骤可复现。

2026-04-02 21:53:40 924

原创 【Linux】解决Docker-Compose拉取Jenkins时失败问题。

补充:一般来说系统通过NetworkManager管理网络,默认依赖DHCP自动获取DNS,此次失败是因为DHCP分配DNS失败,导致NetworkManager生成了空的resolv.conf文件。国内用户务必配置Docker国内镜像加速,不仅解决拉取失败,还能大幅提升拉取速度,避免官方源访问不稳定;临时DNS配置仅临时生效,重启虚拟机后会失效,必须配置永久DNS(方案A或B),否则问题会复发;打开文件,发现内容为空,无任何DNS配置,只有一行这个。(w=保存,q=退出),按回车完成保存。

2026-04-02 12:07:07 367

原创 【Linux】FinalShell上传文件失败?真相:SFTP权限坑及终极解决方案

FinalShell上传本地虚拟机失败,看似是复杂的网络或服务问题,实则大多是SFTP权限与初始登录用户不匹配的“小坑”。直接用root账号登录,就能快速解决问题;若习惯用普通用户,简单授权后也能正常上传。(注:文档部分内容部分由 AI 生成)

2026-04-02 09:34:34 431

原创 【Java】回车书写注意。记录回车书写不规范导致的踩坑。

但是实际上在输入控制台的时候却会出现很大的问题。就像下面这种情况,明明可以看到字节数组输出没问题,但是打印时却只打印了一个a。解决的方法就是把\r写成\r\n就行了,在什么系统下写的代码就要用与之对应的回车符号。:\r的功能会让光标回到当前行的开头,而不是跳到下一行,导致内容被覆盖。回车不小心用了\r,在文档看来回车是正常的,在windows系统测试文件输出流的时候。windows的回车是“\r\n”linux的回车是"\n"maxos的回车是"\r"

2026-03-29 16:48:43 36

原创 【Java】究竟是什么导致原本可以运行的项目突然报错?根源\+解决方案

*报错根源**:Git 切换分支 → 配置/缓存不一致**解决方法**:`mvn clean` + 刷新 Maven + 重启**根本原因**:不是代码错,是环境没同步!按上面的 3 步操作,立刻就能恢复正常~(注:文档部分内容由 AI 生成)

2026-03-26 22:57:53 232

原创 【Java】关于控制台 SQL 日志显示查询有值但Swagger不显示字段问题

SQL 的确查到了数据(控制台日志有值)但 MyBatis 映射层因为下划线转驼峰的规则,把试图映射到DTO 字段名若写成,就会映射失败,字段变 null最终通过统一 DTO 命名()或 resultMap 显式映射即可解决。

2026-03-23 22:09:28 465

原创 【Java】解决Maven多模块父POM加载失败+IDEA无法新建Java类问题(IDEA文件图标显示不对)

Maven配置一致性:settings.xml中的本地仓库路径,必须与IDEA中配置的Maven本地仓库路径完全一致(IDEA中:File → Settings → Build → Maven → Local repository),否则会导致依赖查找失败。SNAPSHOT版本注意事项:父POM若为SNAPSHOT(开发版),必须先执行mvn clean install安装到本地仓库,子模块才能正常解析;若为RELEASE(稳定版),可直接从远程仓库下载。XML语法严谨性。

2026-03-15 10:05:06 510

原创 【Java】踩坑实录:Spring Boot + Nginx 本地部署404终极排查:从80端口被占用到配置生效全流程

在搭建前后端分离项目本地部署环境时,遇到了经典的“Nginx代理访问404”问题:Spring Boot后端(8106端口)启动正常,Nginx看似启动成功,但访问localhost始终返回404,甚至出现启动报错。经过多轮排查,最终定位了端口占用配置路径进程重启三大核心坑点。本文将完整还原排查过程与解决方案,希望能帮到同样踩坑的小伙伴,少走弯路。关键在于通过查看的日志,发现了是端口占用问题。80端口被系统占用 → Nginx启动失败/配置未生效 → 静态资源无法被正确代理 → 访问报404。

2026-03-08 11:23:53 481

原创 【Java】Java多态详解(含转型、instanceof、代码优化过程)

多态的本质:通过“父类引用指向子类对象”,实现“同一行为,不同表现”,核心是动态绑定(运行时确定执行哪个子类方法);转型的本质:向上转型是“安全的自动转换”,向下转型是“恢复子类能力”,必须配合instanceof使用,避免异常;成员访问的本质:方法可以被重写,所以有多态;变量不能被重写,所以没有多态;使用场景:当需要统一调用不同子类的行为,或需要提高代码扩展性时,优先使用多态。(注:文档部分内容由 AI 生成)

2026-02-10 21:23:56 884

原创 【Java面试】Java核心关键字解析(static_final_访问修饰符)小白易懂

public全开放,private仅自己,protected给子类,默认只给同包;static管“归属”:属于类,全局共享,不用创建对象就能用;final管“不可改”:变量成常量,方法不能重写,类不能继承。(注:文档部分内容由 AI 生成)

2026-02-10 16:56:14 976

原创 【Java面试】Java内存分配机制(小白易懂)

JVM(Java虚拟机)启动时,会自动把内存划分成几个功能不同的“区域”,程序运行时,不同类型的数据(变量、对象、方法、类结构等)会被精准分配到对应区域,目的是高效访问数据、方便垃圾回收(GC)、避免内存混乱,让程序运行更稳定、更快。栈存“临时数据”(局部变量、对象引用),用完就扔,自动回收;堆存“真正的对象”,需要GC回收;方法区存“类的模板”(静态资源、类结构),不轻易动;new出来的在堆里,static修饰的在方法区,方法里的变量在栈里;

2026-02-07 16:23:29 549

原创 【Java面试】双亲委派机制(小白易懂)

先向上委托,再向下加载,父类优先;核心目的是防篡改、防重复,保护Java核心类安全;核心类由启动类加载器加载,自己写的类由应用程序类加载器加载,层级清晰。(注:文档部分内容由 AI 生成)

2026-02-02 11:58:08 437

原创 【Java面试】JVM类加载机制详解:全过程+代码验证

本文深入解析了Java类加载机制的核心流程。类加载是将Java代码转换为JVM可执行形式的关键步骤,主要包括加载、链接(验证、准备、解析)和初始化三个阶段。通过测试代码演示了不同场景下类加载的行为差异,重点分析了静态变量赋值和静态代码块执行的时机。文章还总结了面试常见问题和开发注意事项,帮助开发者正确理解类加载过程,避免常见误区。掌握这些知识对编写高效、安全的Java程序至关重要。

2026-02-02 11:38:00 1043

原创 【Java】理解弄清 DO, DTO, VO, BO, PO, POJO以及 Controller, Service, Dao/Mapper到底都是干什么的,以关于它们是如何在代码和文件结构中体现的。

本文梳理了Java项目中常见的POJO、DO、BO、DTO、VO等对象类型与分层架构的协同关系。关键点包括: 数据对象类型:PO(数据库映射)、DO(业务领域)、BO(业务逻辑单元)、DTO(数据传输)、VO(视图展示),它们如同不同规格的"快递盒",在不同场景中承载数据 架构分层:Controller(请求处理)、Service(业务逻辑)、Dao/Mapper(数据访问)构成固定层次

2025-11-03 20:10:28 1081

原创 【Java】关于mybatis动态拼接SQL实现动态查询时遇到的一些问题

MyBatis 提供了多个智能标签来帮助我们在构建动态 SQL 时避免语法错误。除了你已经熟悉的<where>标签,<set>和<trim>标签在处理更新操作和需要更精细控制的场景中尤其有用,<foreach>标签则能优雅地处理集合遍历。下面的表格总结了这些标签的核心功能。标签名称主要作用解决的典型语法错误经典应用场景<where>自动插入WHERE关键字,并去除子句开头多余的AND或OR。避免WHERE后直接跟ANDOR导致的错误。多条件动态查询。<set>自动插入SET。

2025-11-02 20:44:16 1054

原创 【Java】关于Maven,Tomcat,Springboot,Spring cloud, Mybatis ,Mybatis-plus都是干嘛的以及相互之间的关系。

理解这些Java后端开发中常见技术的关系与区别,对于技术选型和构建知识体系非常重要。它们并非相互替代,而是处在技术栈的不同层级,承担着不同的职责。pom.xml。

2025-11-02 15:42:31 629

原创 【Java】nacos的作用(事例)以及其如何发挥功能的?

nacos的作用以及其如何发挥功能的nacos 作为微服务架构中的核心组件,主要承担着以及两大职责。下面我们通过一个具体的电商场景来理解它的作用。

2025-10-13 23:04:16 660

原创 【Web部署问题】在Tomcat中部署web项目出现http状态-404 -未找到详细解决方案

如果没有工件,或者工件有缺失东西,去这里配置工件,部署完tomcat记得在选中要运行的工件。

2025-04-18 10:31:46 395

原创 【Project】小项目:ATM案例

ATM案例功能如下01系统架构搭建、欢迎页设计02开户功能实现03登录功能实现04操作页展示、查询账户、退出账户05存款、取款功能实现06转账功能实现07销户功能实现08用户密码修改首先需要建立三个类一个是用户Accout实体类,用于存放用户信息一个是ATM,用于存放ATM的操作业务逻辑一个是测试类,用于测试。

2025-03-30 17:07:07 306

原创 【Java】public class Person{}和public Person{} 和 public Person person究竟都有哪些区别呢。

语法结构类型作用关键修饰符类声明定义可全局访问的类public(强制匹配文件名)构造方法初始化对象public(可自定义访问)成员变量声明存储对象或类属性public(控制可见性)程序入口方法作为JVM执行的起点。

2025-03-29 15:45:00 444

原创 【java】关于类与基本数据类型以及数组的区别

/ 输出8(方法调用)对比维度基本数据类型类(引用数据类型)存储方式栈内存存储实际值堆内存存储对象,栈存引用地址赋值行为复制值副本复制引用地址(共享对象)比较方式==比较值==比较地址,equals比较内容方法操作仅支持运算符支持自定义方法默认值数值型为0,布尔型为falsenull(需显式初始化)内存管理自动回收依赖垃圾回收(GC)一、相同之处引用数据类型两者均属于引用类型,存储在堆内存中,通过引用地址访问(如通过new关键字创建实例或数组对象)。

2025-03-29 11:48:46 1004

原创 【Java】解惑:对于什么是类(class),什么是对象(object),什么是方法(method),一个项目究竟该如何一层层的建立,之间的包又是什么关系呢。

首先要明确项目的结构是如何层层递进的project(项目) 一个项目可有多个模块module(模块) 一个模块可有多个包package(包) 一个包可有多个类class(类) 一个类可有多个方法method(方法) 方法就是业务逻辑,增删改查嘛。

2025-03-29 11:24:43 367

原创 【Java】关于为什么java实体类中的变量要设置为private而不是public,风险究竟在哪里。

将变量声明为 public 会导致以下问题:数据完整性受损:外部代码可以直接修改变量的值,可能导致无效或不一致的状态。缺乏验证:无法在赋值时添加验证逻辑,确保变量的有效性。封装性破坏:类的内部状态被外部代码直接访问和修改,违反了封装性原则。通过将变量声明为 private,并提供公共的 getter 和 setter 方法,我们可以:保护数据的完整性。在赋值时添加验证逻辑。提高代码的封装性和可维护性。这些措施有助于编写更健壮、更灵活和更易于维护的代码。

2025-03-28 21:54:52 802

原创 【Linux docker】补:docker的安装及在配置YUM仓库时不小心添加了错误的镜像源的解决办法。

阿里镜像:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo。官方镜像:https://download.docker.com/linux/centos/docker-ce.repo。打开/etc/yum.repos.d/目录下的.repo文件,检查是否添加了错误的镜像源URL。在移除或禁用错误镜像源后,需要清理YUM的缓存,以确保新的配置生效。sudo rm /etc/yum.repos.d/错误的镜像源文件名.repo。

2025-03-14 19:09:04 605

原创 【Linux docker】关于Docker 守护程序配置远程访问,安全认证以及idea连接。

在 SSL/TLS 证书管理的过程中,每一个由 CA 签发的证书都会被分配一个唯一的序列号,以确保证书的唯一性。签发终端实体证书是PKI(公钥基础设施)体系中的一个关键环节,指由证书颁发机构(CA)向最终用户或设备发放用于身份认证和加密通信的数字证书。综上,“签发终端实体”指通过CA体系为终端用户或设备颁发仅用于身份验证或加密的证书,其核心在于通过层级化的信任链和扩展属性满足实际应用场景需求。不可签发其他证书:与CA证书不同,终端实体证书的密钥仅用于加密通信或身份验证,不能用于签发下级证书5。

2025-03-10 23:41:36 1417

原创 【Linux docker】关于docker启动出错的解决方法。

就是。

2025-03-10 16:23:45 2070

原创 【Linux docker 容器】关于想要让虚拟机在开机时候也docker自己启动,容器也自己启动,省去要自己开docker和容器

它适用于那些需要在维护、升级或调试期间暂时停止的服务,但又不希望这些服务在停止后自动重启的情况。行为:只要容器没有被手动停止,Docker就会自动重启它。如果容器被手动停止了,则不会自动重启,除非再次手动启动。: 在设置了 Docker 服务和容器的自动启动后,你可以重启虚拟机来验证设置是否生效。,这样容器就会在 Docker 服务启动时自动启动,并且在容器退出时也会自动重启。行为:无论容器的退出原因是什么,Docker都会自动重启该容器。如果你是在创建容器时就想设置自动重启策略,你可以在。

2025-03-10 15:43:35 1381

原创 【IntelliJ IDEA】关于如何创建自己的实时模版,例如输入一个字符就能直接使用注释模版,方便方法解释

想要的效果就是输入/**就能直接出现下面的代码先创建一个模版组,这里我创建的是MyTemplates然后创建实时模版就是你输入什么,他就可以给你什么比如里面默认输入psvm就给你。

2025-02-28 14:44:35 442

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除