自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Roc的博客

《备忘录》

  • 博客(213)
  • 收藏
  • 关注

原创 PDF文件重复图片对比方案

⚠️ 注意:即使两张图片看起来很一样,但若压缩质量、分辨率、嵌入的元数据有差异,Czkawka就不会认为它们“完全相同”。这正是你需要的“精确匹配”行为。(图片直接嵌入为 Base64,无需外部文件)。提取PDF中的所有图片(无损、原始格式)✔️ 两个PDF中完全相同的图片对。提取图片,并生成一个自包含的。下面是完整的可运行代码,基于。[缩略图A] [缩略图A’]对比两个PDF,生成一个。📄 PDF1 独有的图片。📄 PDF2 独有的图片。

2026-08-24 11:48:51 373

原创 Java 高效生成 Word 文档:poi-tl 的使用

摘要:poi-tl是基于Apache POI的Word模板引擎,通过低代码方式实现动态文档生成。核心优势包括跨平台、功能全面、样式保留等,支持文本、图片、表格等元素渲染。开发流程仅需3步:创建模板→准备数据→渲染输出。文章详细介绍了环境搭建、快速入门及核心功能实战,包括文本样式处理、图片插入和表格渲染等高级应用场景,帮助开发者高效实现Word文档自动化生成。

2026-03-25 10:15:02 862

原创 LangChain4j学习笔记

LangChain4j是一个简化LLM集成到Java应用的框架,提供统一API支持15+LLM提供商和20+嵌入存储。核心功能包括:1)模块化设计,含核心抽象和工具集;2)低层/高层API,支持从基础组件到AI服务的灵活调用;3)Spring Boot快速集成。示例展示了OpenAI接入方式,并提及支持DeepSeek等其他模型,通过环境变量管理API密钥确保安全。框架通过标准化接口降低了不同LLM切换的复杂度,适用于构建聊天机器人、RAG等AI应用。

2026-02-24 11:27:55 613

原创 介绍一款即时通讯系统——盒子IM

盒子IM是一个类似微信的聊天工具。后端采用springboot+netty实现,web端使用vue,移动端使用uniapp,支持私聊、群聊、离线消息、发送图片、文件、语音、emoji表情、视频聊天等功能。

2025-12-26 14:54:57 1477

原创 MySQL使用命令mysqldump备份与导入

本文详细介绍了MySQL数据库备份工具mysqldump的使用方法。主要内容包括:1)mysqldump命令的基本语法和常用选项;2)多种备份方式(单库、多库、全库、特定表等);3)数据导入方法;4)高级用法如压缩备份和远程备份;5)实际应用场景和性能优化建议;6)常见问题解决方案;7)备份最佳实践。文章强调定期备份、验证备份和多版本保留的重要性,为数据库管理员提供了全面的备份策略指导。

2025-12-26 11:46:45 1138

原创 解锁时间魔法:SQL中TIMESTAMPDIFF函数的使用指南

TIMESTAMPDIFF函数是SQL中用于计算时间差值的重要工具,支持从微秒到年的多种时间单位计算。其核心优势包括跨数据库兼容性、全面时间单位覆盖、简洁语法和自然日历计算逻辑。基础语法为TIMESTAMPDIFF(unit, start, end),支持DATE/TIMESTAMP等数据类型,会自动处理类型转换和负值情况。典型应用场景包括计算年龄、工作时长、任务周期等,还能处理跨月、跨时区等边界情况。通过与其他时间函数组合,可实现复杂的时间差计算和格式化输出。

2025-12-25 14:49:20 1075

原创 WinMerge:开源免费的文本与文件对比合并神器

WinMerge是一款免费开源的Windows文件对比工具,支持文本、二进制和图像文件对比,具有文件夹递归对比、三向合并、版本控制等功能。其核心优势包括完全免费、支持中文界面、语法高亮显示差异等。相比Beyond Compare等收费软件,WinMerge在功能全面性上毫不逊色。文章详细介绍了其下载方式、使用技巧(如快捷键、过滤配置)以及与其他工具的对比,推荐作为日常编程、文档管理和版本控制的必备工具。最新版本可通过官网或GitHub获取,支持32/64位系统。

2025-12-16 14:45:06 1373

原创 Canal 启动报错:caching_sha2_password Auth failed

摘要:MySQL 8.0.3及以上版本默认使用caching_sha2_password身份验证插件,导致Canal连接失败。解决方法是将用户验证方式改为mysql_native_password。若出现插件未加载错误,需在my.ini配置文件中启用mysql_native_password插件并重启MySQL服务,然后修改用户认证方式。主要步骤包括修改配置文件、重启服务、更新用户认证插件等。

2025-12-12 14:58:02 438

原创 DEMO:Canal实时同步MySQL数据到Elasticsearch

本文介绍了在Windows环境下搭建Canal实现MySQL数据实时同步到Elasticsearch的完整流程。主要内容包括:1)环境准备,明确Elasticsearch 6.2.2、Kibana 6.0.0、Canal 1.1.8、MySQL 8.4和JDK 1.8的版本组合;2)原理说明,详细解析MySQL主从复制机制和Canal基于Binlog订阅的CDC实现原理;3)分步安装指南,涵盖Elasticsearch和Kibana的安装配置、Canal组件下载部署以及MySQL的Binlog开启设置。

2025-12-12 14:47:09 1383

原创 微信退费报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

微信退费报错:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

2025-11-28 11:49:42 564

原创 深入理解 Spring 的 @ControllerAdvice

简单来说,是一个组件注解(被@Component元注解标注),它允许你将一个类声明为一个全局的、跨多个控制器的增强器(Advice)。你可以把它理解为 Spring MVC 版本的AOP(面向切面编程),但它不是基于代理,而是专门为控制器层设计的。全局异常处理全局数据绑定全局数据预处理命名清晰:类名如,明确其职责。区分使用场景开发,优先使用,专注于返回统一的 JSON 异常响应。开发传统多页应用,使用,可以混合处理异常、绑定模型等。避免过度使用。

2025-08-20 15:04:37 1457

原创 Spring事务之UnexpectedRollbackException异常解决指南

org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only 这个异常,往往意味着事务边界处理出现了问题。当一个事务(外层事务)尝试提交时,发现该事务已被内部标记为“必须回滚”(rollback-only),导致无法正常提交,从而抛出此异常。

2025-08-12 10:00:00 1312

原创 解决IDEA报错:org.springframework.dao.InvalidDataAccessApiUsageException: Error attempting to get column

【摘要】SpringBoot项目在使用MyBatisPlus框架时,新增时间字段后出现SQLFeatureNotSupportedException报错,具体为无法获取update_time列。经排查发现是Druid数据源版本过低(低于1.1.21)导致不兼容JDK8的LocalDateTime等时间类型。解决方案是升级Druid依赖至1.1.21或更高版本,修改pom.xml后问题解决。该案例说明第三方依赖版本与JDK特性支持存在兼容性问题。

2025-08-12 08:45:00 789

原创 MySQL中GROUP_CONCAT函数的使用详解

MySQL的GROUP_CONCAT函数详解:该聚合函数用于将分组后的多行数据合并为字符串,支持去重(DISTINCT)、排序(ORDER BY)和自定义分隔符(SEPARATOR)。通过示例演示了基础查询、高级用法(如嵌套CONCAT)及实际应用场景(标签系统、报表生成等)。使用时需注意长度限制(group_concat_max_len变量控制)和NULL值处理,合理配置可避免结果截断。该函数有效解决了SQL中行转列的需求,是数据聚合的实用工具。

2025-08-11 11:41:32 1365

原创 Linux命令—less命令的使用

本文介绍了Linux中less命令的高效使用技巧。作为比cat和more更强大的文件查看工具,less支持双向滚动、搜索和大文件处理。文章详细讲解了其核心功能:包括基本导航(翻页/跳转)、高级搜索(支持正则)、行号显示等;列举了常用选项(如-N显示行号、-i忽略大小写);提供了实用操作示例(实时监控、多文件切换等);并分享了进阶技巧(标记位置、管道结合、压缩文件查看等)。最后针对常见问题给出解决方案,并强调less在资源效率、功能全面性和可定制性方面的优势,是开发运维人员的必备工具。

2025-08-11 11:16:26 1385

原创 复盘—MySQL触发器实现监听数据表值的变化,对其他数据表做更新

这篇文章介绍了MySQL中创建触发器来监控订单商品表状态变化并更新订单备注的方法。主要内容包括: 基础语法:使用DELIMITER临时修改SQL结束符以创建多语句触发器 需求演进: 第一版:仅检查单行记录的售后数量变化 第二版:根据售后数量是否为0设置不同备注 第三版:考虑同一订单多条商品记录的全局状态判断 关键改进点: 通过子查询检查同一订单所有商品的售后状态 使用COUNT(ID)=0替代NOT EXISTS提高效率 添加索引优化性能 注意事项: 并发更新的潜在问题 NULL值处理 性能优化建议

2025-07-24 19:58:04 1324

原创 Spring Boot项目初始化加载自定义配置文件内容到静态属性字段

本文介绍了支付系统配置的实现过程:1)在resources目录创建cXXX.properties配置文件,包含商户号、密码等关键参数;2)编写XXXConfig.java配置类,通过静态代码块加载配置文件属性;3)添加第三方JAR包的两种方式:WEB-INF/lib目录放置和pom.xml中system依赖配置。该方案实现了支付参数的集中管理和安全加载,同时提供了外部依赖的集成方法。(149字)

2025-06-27 14:26:13 206

原创 Caused by: java.security.NoSuchAlgorithmException: PBEWithSHAAndTwofish-CBC SecretKeyFactory not ava

摘要:Linux系统对接中信银行时出现PBEWithSHAAndTwofish-CBC算法不支持问题,主要原因是Bouncy Castle加密提供者验证失败。解决方案包括:1)安装官方签名的Bouncy Castle JAR并配置Java安全策略(推荐);2)动态注册提供者;3)验证JAR签名;4)调整安全策略。系统级修复需检查Java版本、更新CA证书及系统时间。验证步骤包括测试加密操作和检查提供者注册状态,同时需排查多版本冲突、类加载器问题和SELinux限制等常见问题。

2025-06-26 15:13:21 1139

原创 生产级API轮询服务完整实现

摘要:本文实现了一个可配置的API轮询服务,支持按预设时间间隔序列(5秒至30分钟)自动重试查询。该服务采用线程安全设计,包含完整的错误处理机制和日志记录功能,支持优雅关闭和自定义轮询策略。核心类通过ScheduledExecutorService实现定时调度,当API返回成功状态或达到最大尝试次数时自动停止轮询,适用于生产环境中的异步任务状态检查场景。

2025-05-28 14:31:56 759

原创 MySQL表达式之公用表表达式(CTE)的使用示例

数据表中有并且的数据记录统计企业产值能力,找出所有家企业中产值最高的企业,其产值记为P。对于第i家企业,其产值为Pi则该企业的产值能力评分=Pi/P×100。

2025-04-25 12:44:15 646 1

原创 HTTP 请求头与请求体:数据存储的底层逻辑与实践指南

语义优先:严格遵循 HTTP 方法语义(GET 无体,POST 有体)。安全至上:敏感信息永远放在请求体,且通过 HTTPS 传输。性能平衡:小数据用请求头,大数据用请求体,复杂数据用 JSON。版本适配:HTTP/2 + 场景优先使用头部压缩和多路复用。通过理解请求头与请求体的底层逻辑,开发者能构建出更健壮、高效的 API 体系。在实际开发中,建议结合 OpenAPI 规范和安全扫描工具,确保每个请求的数据存储位置都经过审慎考量。

2025-04-22 15:49:21 1415 2

原创 js树形控件—zTree使用总结

树形控件的使用是应用开发过程中必不可少的。zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。zTree v3.3 API 文档从zTree官网下载的zTree包括以下组成部分metroStyle文件夹:zTree的metro风格样式相关文件(图片及css样式表)。zTreeStyle文件夹:zTree的标准风格样式文件夹(图片及css样式表)是完整的js库,可单纯加载此文件实现所有zTree功能,ztree.core。

2025-04-17 08:30:00 3616

原创 推荐一款开源、一站式SQL审核查询平台!功能强大、安全可靠!

在当今这个数据驱动的时代,数据库作为企业核心信息资产的载体,其重要性不言而喻。随着企业业务规模的不断扩大,数据库的数量和种类也日益增多,这对数据库的管理与运维工作提出了前所未有的挑战。在这样的背景下,一款高效、易用的数据库管理工具显得尤为重要。Archery,作为一款开源的数据库管理平台,以其独特的魅力成为了众多开发者和运维工程师的得力助手,如同古代战场上的利箭,精准而有力地击中了数据库管理的痛点。Archery是一个基于。

2025-04-16 16:14:30 1107

原创 Java对接快递鸟,查询快递物流信息

根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递API接口,实现自动查询的功能。下面是java版本的根据单号查询物流跟踪信息的详细示例代码。只需要下载就可以运行,(自己需要简单的修改)注:登录快递鸟用户管理后台后获得。登录快递鸟用户管理后台。

2025-04-16 15:08:04 954

原创 SpringCloud-快速通关(三)

seata有服务器端和客户端,客户端要连上服务器才能使用。TC(事务协调者)在服务器端:得官网下载: 全局事务的管理者。用于维护全局和分支事务的状态,驱动TM的全局提交和回滚。TM和RM通过TC注册分支和汇报状态。TM(事务管理器)在客户端:发起全局事务,定义全局事务的范围,操作全局事务的提交和回滚。RM(资源管理器)在客户端:操作自己分支的事务提交和回滚。seata的稳定性非常重要,如果TC崩了,那所有的事务管控都失效。

2025-04-15 10:18:37 1240

原创 SpringCloud-快速通关(二)

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。

2025-04-14 17:31:40 1164

原创 SpringCloud-快速通关(一)

Spring Cloud是分布式系统一站式解决方案。什么是分布式系统?架构分:单体和分布式。集群只是一种物理形态,分布式是工作方式。架构演进单体架构集群架构分布式架构定义所有功能模块都在一个项目里单体的多服务器版本一个大型应用被拆分成很多小应用分布部署在各个机器;优点开发部署简单解决大并发解决了单体+集群的问题缺点无法应对高并发问题1:模块块升级 麻烦 问题2:多语言团队 交互不通基于自己的理解:分布式架构(模拟用户访问)通过网关来发送各个微服务的请求(请求路由)。用。

2025-04-07 10:23:03 1813

原创 SQL中累计求和与滑动求和函数sum() over()的用法

按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。sum():对某个字段求和。over():开窗,按照某种规则,将数据分组、分窗口计算。:对所有行进行求和。:按照order by对应字段的顺序,进行累计求和,即第一行到当前行,默认order by是升序排序(asc),也可以通过指定降序排序(desc)。

2025-03-28 20:22:11 3667

原创 解决IDEA中maven找不到依赖项的问题

直接去官网找到对应的依赖项jar包,并且下载到本地,然后安装到本地厂库中。

2025-03-24 15:18:30 3859

原创 MySQL表达式之公用表表达式(CTE)

WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。这个语句算是公用表表达式(CTE,Common Table Expression)。WITH AS语法是MySQL中的一种临时结果集,CTE可以在select , insert , update , delete , merge语句的执行范围定义。通过使用WITH AS语句,可以将一个查询的结果存储在一个临时表中,然后在后续的查询中引用这个临时表。

2025-03-24 10:18:01 1353

原创 【Ctrl+Shift+L 引发的“性能记录已开始”问题一键解决】

组合键,竟让屏幕弹出“性能记录已开始”的提示?别慌,你并不是误入了什么神秘的开发者模式,这只是Windows系统内置的一个小功能罢了。别担心,今天这篇紧急攻略就是要帮你迅速解除这个“意外惊喜”,回归平静的操作体验!无论你是编程新手被这突如其来的提示吓了一跳,还是资深用户想进一步掌握系统控制权,这篇文章都能为你提供即刻的解决方案,同时增添一份对Windows系统深层功能的认识。因为更新了AMD最新的显卡驱动,此功能为显卡驱动的最新功能。最近使用IDEA开发时,发现使用代码格式化快捷键。

2025-03-21 11:41:17 3822 2

原创 【npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree】

根据他的建议,我们去执行了命令之后,在你发现依赖安装好了之后,并不是所有项目都会乖乖听话,有些“顽固”项目依旧会报上面的错误,这时,就应该去看一下npm 版本了,npm@7与ERESOLVE有关的问题比较常见,这是因为npm7.x于某些事情要比npm6.x更加严格,通常解决办法就是使用。它告诉 NPM 忽略项目中引入的各个modules之间的相同modules但不同版本的问题并继续安装,保 证各个引入的依赖之间对自身所使用的不同版本modules共存。

2025-03-17 16:50:04 4698

原创 【线上几百万的消息积压如何处理?】

这时候,咱们可以把失败的消息单独拎出来,放到一个专门的队列里,慢慢处理。同时,设置一个合理的重试机制,比如间隔多长时间重试一次,重试多少次后就放弃。时刻关注系统的运行状态,一旦发现消息积压,立马就能收到报警,然后迅速处理。有时候,消息积压是因为某些消息处理失败了,然后一直重试,导致后面的消息也被堵住了。总之,处理线上几百万消息积压这事儿,关键就是要思路清晰,逻辑顺畅。这个示例很简单,就是一个消费者不断地从队列里取消息,然后处理。如果消息还是太多,处理不过来,那咱们就得考虑限流和降级了。

2025-02-21 11:31:03 253

原创 【Hash索引和B+树索引的区别?】

它的所有节点都遵循左节点小于父节点,右节点大于父节点的规则,这使得它天然支持范围查询。字段时,B+树索引会从根节点开始,逐级查找,直到找到叶子节点,获取到相应的数据。这样,当你查询时,只需调用一次哈希函数,就能迅速定位到相应的位置,速度非常快。比如,如果“金庸”的哈希值对应槽位是005,那在这个槽位中就会存储“金庸”这个key,以及指向这一行数据的引用。因为哈希函数是无序的,经过哈希算法后,原先有序的键值可能变得不连续,所以无法利用索引完成范围查询。总结一下,Hash索引和B+树索引各有优劣。

2025-02-21 10:46:12 143

原创 【@Async注解一定会异步执行吗?】

Async是Spring框架提供的一个注解,用于标记一个方法为异步方法。当你在某个方法上加上这个注解后,Spring会用一个单独的线程去执行这个方法,这样主线程就不会被这个方法阻塞,可以继续执行其他任务。虽然@Async启用了异步支持(在正确的方法上使用了@Async注解。(可选)合理配置了线程池。只有满足了这些条件,@Async注解的方法才会真正地异步执行。

2025-02-21 08:30:00 350

原创 【实现序列化和反序列化为什么要实现Serializable接口?】

首先,咱们得先明白什么是序列化和反序列化。序列化:就是把一个对象变成字节流的过程。想象一下,你把一个对象“打包”起来,然后可以很方便地通过网络传输,或者保存到文件里。反序列化:就是把字节流再变回对象的过程。相当于你把“打包”好的对象再“拆包”出来,还原成原来的对象。

2025-02-20 14:03:53 349

原创 【为什么数据库字段建议设置为NOT NULL?】

总的来说,将数据库字段设置为NOT NULL,能够确保数据完整性,避免错误和异常,提高数据一致性和索引效率,简化代码逻辑。在实际开发中,我们应该根据业务逻辑和需求,合理地使用NOT NULL约束,以提高系统的稳定性和可维护性。

2025-02-20 13:51:40 286

原创 【什么情况下不建索引?】

索引虽好,但不能滥用。在决定是否给某个字段建索引时,要考虑数据量、字段更新频率、选择性、查询频率以及字段类型等因素。合理地使用索引,才能让数据库性能得到真正的提升。记住,优化数据库性能是一个平衡的艺术,需要不断地尝试和调整。

2025-02-20 13:31:41 191

原创 【Spring Bean如何保证并发安全?】

保证Spring Bean的并发安全是一个复杂的问题,需要根据具体的业务场景和需求来选择合适的方法。在实际应用中,通常会结合多种方法来达到最佳的效果。

2025-02-20 13:20:56 193

原创 【为什么SQL语句不要过多的 join?】

总而言之,虽然JOIN是SQL里的一个强大功能,但在实际使用中,我们要注意“适度原则”。过多的JOIN不仅会影响查询性能,还会增加SQL语句的复杂度和资源消耗。

2025-02-19 09:00:00 227

Canal实时同步MySQL数据到Elasticsearch-Elasticsearch-6.2.2-Kibana-6.0.0-Canal-1.1.8

Windows环境搭建DEMO—Canal实时同步MySQL数据到Elasticsearch Elasticsearch-6.2.2 Kibana-6.0.0 Canal-1.1.8

2025-12-12

SpringCloud-快速通关(所有资料)

SpringCloud-快速通关系列所有资料汇总 SpringCloud-快速通关(一)文章链接地址:https://blog.youkuaiyun.com/weixin_46990523/article/details/146983646 SpringCloud-快速通关(二)文章链接地址:https://blog.youkuaiyun.com/weixin_46990523/article/details/147202367 SpringCloud-快速通关(三)文章链接地址:https://blog.youkuaiyun.com/weixin_46990523/article/details/147238489

2025-04-15

apache-seata-2.1.0-incubating-bin.tar.gz

apache-seata-2.1.0-incubating-bin.tar.gz

2025-04-15

seata-demo.zip

seata-demo.zip

2025-04-15

nacos-server-2.4.3.zip

nacos-server-2.4.3.zip

2025-04-14

sentinel-dashboard-1.8.8.zip

sentinel-dashboard-1.8.8.jar

2025-04-14

SpringCloud - 快速通关

代码+课件+逻辑图

2025-04-03

Vue-Devtools-master.zip

Vue开发工具——谷歌浏览器插件

2024-04-25

ES6新特性的部分示例代码

ES6新特性的部分示例代码+适合前端学习ES6新特性人群+供自己学习测试使用。 注意:此实例非常简单哦!!!

2024-04-25

尚硅谷谷粒商城电商项目文档及源码.zip

尚硅谷-谷粒商城电商项目-相关文档,相关软件及相关源码。 仅供学习使用哦。

2024-04-03

尚硅谷谷粒商城电商项目sql.zip

尚硅谷谷粒商城电商项目sql;仅供学习使用哦!!!

2024-04-03

Redis、Spring、RabbitMQ、Java线程、Mybatis、HashMap、JVM、MySQL相关问题的实例代码

Redis应用场景、Spring框架、RabbitMQ、Java线程、Mybatis框架、HashMap、JVM、MySQL相关问题的示例代码,供参考学习理解使用。

2024-03-03

空空如也

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

TA关注的人

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