摘要:
BeanUtil.copyProperties(source,target)拷贝对象中如果有子对象,那拷贝方式为: 当子对象(对象属性)类型不同时,调用反射拷贝属性,此时可以理解为深拷贝; 当子对象类型相同时,直接赋值对象引用,为浅拷贝。 对于 Bean 与 Bean 之间的拷贝,最终是由 Bean
阅读全文
posted @ 2025-12-16 21:23
Higurashi-kagome
阅读(28)
推荐(0)
摘要:
基于(调整代码等):RabbitMQ 最佳实践 在使用消息机制时,需要重点关注以下几个问题: 消息不能丢失。 保证消息一定能投递到目的地。 保证业务处理与消息发送/消费之间的一致性。 本文将以RabbitMQ为例,详细探讨如何解决上述问题。 消息持久化 如果希望RabbitMQ重启后消息不丢失,那么
阅读全文
posted @ 2025-12-16 11:04
Higurashi-kagome
阅读(19)
推荐(0)
摘要:
最近希望找一款软件记录自己在各项事情上所花的时间,最终用上了 Android-SimpleTimeTracker,整体感觉不错,其设计很简洁,虽然部分 UI 不那么好看,但是功能正好是我所想要的,偏向于记录而不是监督。其间还找到了一些类似的软件: Traprock:也是偏向于记录的软件,UI 很简洁
阅读全文
posted @ 2025-12-11 21:52
Higurashi-kagome
阅读(8)
推荐(0)
摘要:
原文(部分调整):【RabbitMQ】一文带你搞定 RabbitMQ 延迟队列 一、说明 上一篇文章详细探讨了 RabbitMQ 中的死信队列,包括其概念、使用场景及实现方法。若读者尚未了解死信队列,建议先行阅读该文章,因为本文内容与死信队列紧密相关。 本文将继续深入探讨 RabbitMQ 的高级特
阅读全文
posted @ 2025-12-11 15:18
Higurashi-kagome
阅读(53)
推荐(0)
摘要:
原文(部分调整):【RabbitMQ】一文带你搞定 RabbitMQ 死信队列 一、引言 RabbitMQ 是一个流行的开源消息队列系统,基于 Erlang 语言开发。它以其活跃的社区、快速的更新维护、稳定的性能,赢得了众多企业的青睐。 在处理订单等核心业务时,为确保消息数据不丢失,RabbitMQ
阅读全文
posted @ 2025-12-11 13:44
Higurashi-kagome
阅读(57)
推荐(0)
摘要:
发现有一个开源工具 docker-pull-tar 可以将镜像保存为.tar文件,可以尝试一下。下面是通过命令下载镜像的方法。 1. 从远程仓库拉取镜像 (下载) 这是最直接的下载方式。 命令格式: docker pull <镜像名称>:<标签> 示例: 拉取最新版ubuntu镜像:docker p
阅读全文
posted @ 2025-12-10 21:10
Higurashi-kagome
阅读(347)
推荐(0)
摘要:
AOP(面向切面编程)是 Spring 两大核心之一,它是一种编程思想,是对 OOP 的一种补充。它通过横向抽取共性功能(如日志、事务),解决代码重复和耦合问题,提升代码复用性和可维护性。它的底层是通过动态代理实现的。 例子:记录 Controller 请求日志 如何给所有的 Controller
阅读全文
posted @ 2025-12-09 17:55
Higurashi-kagome
阅读(9)
推荐(0)
摘要:
为什么需要“扰动函数”?—— hash ^ (hash >>> 16) HashMap中用 hash 方法计算哈希值: static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode())
阅读全文
posted @ 2025-12-09 16:24
Higurashi-kagome
阅读(17)
推荐(0)
摘要:
JDK 8 中,HashMap计算元素索引时,使用了下面的位运算优化技巧: 当数组长度length是 2 的整数次幂(即length = 2ⁿ),那么:hash % length = hash & (length - 1) 为什么成立? 令length = 2ⁿ,那么: length = 2ⁿ =
阅读全文
posted @ 2025-12-08 17:01
Higurashi-kagome
阅读(6)
推荐(0)
摘要:
一、头插法 定义:头插法是指在链表头部进行节点插入的方法。其核心特点是,新插入的节点总成为链表的第一个有效节点。因此,如果按数据1, 2, 3的顺序进行头插操作,最终链表的节点排列顺序将是3, 2, 1。简而言之,头插法实现的是逆序插入。 代码示例:使用头插法建立单链表 我们首先定义链表节点结构:
阅读全文
posted @ 2025-12-08 15:15
Higurashi-kagome
阅读(40)
推荐(0)
摘要:
推荐方案:使用 Pipeline(Jenkinsfile) + build步骤 适用于 Jenkins 2.x 及以上(支持 Pipeline)。 在新建 Pipeline 任务中,使用build步骤依次触发已有 Job,脚本示例如下: pipeline { agent any stages { s
阅读全文
posted @ 2025-12-08 10:00
Higurashi-kagome
阅读(18)
推荐(0)
摘要:
原文(部分调整):Redis 集群搭建详细指南 Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在 3.0 版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几
阅读全文
posted @ 2025-12-02 15:23
Higurashi-kagome
阅读(20)
推荐(0)
摘要:
一、安装前准备 确保你的 Windows 上已经: 安装 Docker Desktop 已开启 WSL2(Docker 默认要求) 验证 Docker 是否正常: docker --version 二、拉取带管理界面插件的 RabbitMQ 镜像 RabbitMQ 官方镜像里带管理界面的版本是man
阅读全文
posted @ 2025-11-28 20:13
Higurashi-kagome
阅读(48)
推荐(0)
摘要:
最初使用如下方法,发现还是会出现唤醒: 控制面板 -> 硬件和声音 -> 电源选项 -> 更改计划设置 -> 更改高级电源设置 -> 睡眠 -> 允许使用唤醒定时器 -> 禁用。 后面添加休眠按钮,想要长期睡眠的时候,将电脑设置为休眠: 控制面板 -> 硬件和声音 -> 电源选项 -> 选择电源按钮
阅读全文
posted @ 2025-11-28 10:39
Higurashi-kagome
阅读(28)
推荐(0)
摘要:
Java 虚拟机异常处理机制 在 Java 虚拟机中,异常处理主要通过异常表来实现。当 Java 源代码被编译成字节码后,每个方法都会附带一个异常表。异常表中可能包含多条记录,每条记录都由四个主要部分构成:from指针、to指针、target指针以及所捕获的异常类型。这些指针的值是字节码索引(byt
阅读全文
posted @ 2025-11-27 14:17
Higurashi-kagome
阅读(7)
推荐(0)
摘要:
转(部分调整):JAVA 中创建线程池的五种方法及比较 在 Java 中创建线程池主要有两种方式:一种是通过Executors工厂类提供的方法,该类提供了四种不同类型的线程池供开发者快速使用;另一种是直接通过ThreadPoolExecutor类进行自定义创建。 一、通过Executors工厂类创建
阅读全文
posted @ 2025-11-26 22:41
Higurashi-kagome
阅读(155)
推荐(0)
摘要:
概要 在 Java 8 中,虚拟机内存主要由以下几个部分组成: 程序计数器(Program Counter Register):用于保存当前线程执行的位置,可以看作是当前线程所执行的字节码的行号指示器,当线程被切换后,用来恢复线程执行的位置。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个
阅读全文
posted @ 2025-11-26 16:00
Higurashi-kagome
阅读(9)
推荐(0)
摘要:
基于:研究了 2 天,终于知道 JDK 8 默认 GC 收集器了! 在《深入理解 Java 虚拟机》第三版第 128 页中,提及在 JDK 9 之前,Server 模式下默认的垃圾收集器组合是Parallel Scavenge+Serial Old(即PS MarkSweep)。为了验证这一说法是否
阅读全文
posted @ 2025-11-26 14:24
Higurashi-kagome
阅读(25)
推荐(0)
摘要:
推荐阅读:CAS 单点登录详细流程 背景 当前业务系统基于 Spring Security,现在需要集成 CAS,当用户访问业务系统时,如果用户没有登录,则跳转到 CAS Server 统一登录页面完成登录。 而当用户从 CAS Server 退出登录后,业务系统需要清空登录信息,再次访问业务系统时
阅读全文
posted @ 2025-11-20 21:16
Higurashi-kagome
阅读(72)
推荐(0)
摘要:
原文(部分调整):调试排错 - Java 问题排查之工具单 jps jps 全称 Java Virtual Machine Process Status Tool,是 JDK 提供的一个查看 Java 进程的命令行工具,常用来快速定位 Java 进程 ID。 jps 常用命令: jps # 显示进程
阅读全文
posted @ 2025-11-10 22:04
Higurashi-kagome
阅读(15)
推荐(0)
摘要:
基于:Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么? 在 MyBatis 中,Executor 是一个关键的接口,负责执行映射的 SQL 语句。MyBatis 提供了四种类型的 Executor,每种 Executor 在执行 SQL 和处理事务方面都有不同的特点。本文将
阅读全文
posted @ 2025-11-05 23:04
Higurashi-kagome
阅读(13)
推荐(0)
摘要:
当前已经安装了 MySQ(8.3.0),因为有时会需要用到多套系统数据(比如测试生产各一套数据),为了避免数据库名称冲突,希望安装多个 MySQL 实例。 复制D:\soft\mysql-8.3.0-winx64\my.ini到D:\soft\mysql-8.3.0-winx64\my1.ini 修
阅读全文
posted @ 2025-11-03 21:56
Higurashi-kagome
阅读(24)
推荐(0)
摘要:
总结自(部分调整):MyBatis 3 源码深度解析 SqlSource 与 BoundSql 详解 在介绍原理之前,我们首先需要了解 MyBatis 中和 SQL 语句有关的两个组件,即 SqlSource 和 BoundSql。 SqlSource:代表 Java 注解或者 XML 文件配置的
阅读全文
posted @ 2025-10-28 21:42
Higurashi-kagome
阅读(38)
推荐(0)
摘要:
原文:SpringMVC 中反序列化与序列化的原理 说明 在千变万化的需求面前,使用 Spring MVC 原生的 API 进行开发,多数情况是可以满足的,但对于某些特定的场景是无法满足的,这时候就需要对框架进行扩展或是重写源码组件。但前提是需要对框架原理、流程等掌握透彻,知己知彼,方能动手重构。
阅读全文
posted @ 2025-10-25 15:14
Higurashi-kagome
阅读(20)
推荐(0)
摘要:
基于:SpringMVC 启动与请求处理流程解析 什么是 DispatcherServlet? SpringMVC 基于 Servlet,DispatcherServlet 是 SpringMVC 的核心组件,本身是一个 Servlet,负责请求的分发,其继承关系如下: GenericServlet
阅读全文
posted @ 2025-10-25 15:06
Higurashi-kagome
阅读(7)
推荐(0)
摘要:
转自(部分调整):《JAVA 与模式》之责任链模式 《JAVA 与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对
阅读全文
posted @ 2025-10-25 13:50
Higurashi-kagome
阅读(6)
推荐(0)
摘要:
ACID 是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。 原子性
阅读全文
posted @ 2025-10-24 23:39
Higurashi-kagome
阅读(84)
推荐(0)
摘要:
原文:理解事务的 4 种隔离级别 数据库事务的隔离级别有 4 种,由低到高分别为Read uncommitted、Read committed、Repeatable read、Serializable。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。
阅读全文
posted @ 2025-10-24 23:24
Higurashi-kagome
阅读(6)
推荐(0)
摘要:
一、延迟加载是什么? 延迟加载(Lazy Loading)又称“惰性加载”,指的是: 当查询一个对象时,不立即加载它的关联对象(如一对多、多对一关系),而是在第一次真正使用该关联对象时才去执行 SQL 查询加载它。 举个例子: User user = userMapper.selectById(1)
阅读全文
posted @ 2025-10-15 00:33
Higurashi-kagome
阅读(69)
推荐(0)
摘要:
参考: Docker 安装配置 OnlyOffice Installing ONLYOFFICE Docs for Docker on a local server 步骤 1:拉取 OnlyOffice Docker 镜像 首先,使用以下命令从 Docker Hub 拉取 OnlyOffice Do
阅读全文
posted @ 2025-10-03 23:16
Higurashi-kagome
阅读(228)
推荐(0)
摘要:
1. 拉取 OnlyOffice Docker 镜像(如果尚未拉取) 如果本地 Docker 环境中还没有 OnlyOffice Document Server 的镜像,需要首先从 Docker Hub 拉取。 docker pull onlyoffice/documentserver 2. 查找正
阅读全文
posted @ 2025-10-03 15:20
Higurashi-kagome
阅读(112)
推荐(0)
摘要:
1. 问题背景 在 Spring Boot 应用中,我们通常使用@EnableScheduling启用定时任务。这些定时任务在执行过程中,可能会调用 Mapper 方法与数据库交互,产生大量的 SQL 日志。默认情况下,这些日志会与普通业务请求的日志一起输出到日志文件或控制台。 现在希望实现以下目标
阅读全文
posted @ 2025-10-02 22:27
Higurashi-kagome
阅读(43)
推荐(0)
摘要:
一、参考文档 Logback 官方文档 Logback 博客文档 二、logback.xml常用配置详解 以下是logback.xml常用节点结构图: 1. 根节点<configuration> <configuration>是 Logback 配置文件的根节点,包含以下三个重要属性: scan:当
阅读全文
posted @ 2025-10-02 00:09
Higurashi-kagome
阅读(45)
推荐(0)
摘要:
发现是因为没有配置好 SSL 代理,打开Proxying->SSL proxying settings: 应该如下配置: 参考:Charles 抓包抓不到数据
阅读全文
posted @ 2025-09-30 20:49
Higurashi-kagome
阅读(24)
推荐(0)
摘要:
一、概念对比总览 在 Spring Cloud Gateway(或任何网络客户端)中,response-timeout和connect-timeout作用于网络请求的不同阶段。 配置项 作用阶段 含义说明 默认值(Spring Cloud Gateway) 单位 connect-timeout 连接
阅读全文
posted @ 2025-09-17 23:59
Higurashi-kagome
阅读(176)
推荐(0)
摘要:
1. 问题现象与根本原因 在使用达梦数据库进行数据插入操作时,遇到“记录超长”的错误提示,导致数据无法成功保存。 当尝试向达梦数据库表中插入一条新记录时,如果该行记录的总大小超出了数据库的存储限制,系统便会抛出“记录超长”的错误。 1.1 核心限制:页大小与行记录 达梦数据库在存储数据时,每行记录的
阅读全文
posted @ 2025-08-31 20:36
Higurashi-kagome
阅读(176)
推荐(0)
摘要:
参考:0004 故障现象与初步分析 系统运行一段时间之后,出现了 Excel 导出失败的错误: nested exception is java.lang.IllegalStateException: java.nio.file.NoSuchFileException: /tmp/b35f0633-
阅读全文
posted @ 2025-08-31 10:46
Higurashi-kagome
阅读(133)
推荐(0)
摘要:
引言 在使用 Nginx 作为反向代理服务 OnlyOffice 时,发现原本应为https://ip:port/cache/...的请求,在经过 Nginx 代理后,变成了https://ip/cache/...。 问题描述 当 Nginx 配置如下代理 OnlyOffice 请求时: locat
阅读全文
posted @ 2025-08-30 17:17
Higurashi-kagome
阅读(389)
推荐(0)
摘要:
参考:在 Linux(RHEL/CentOS/Ubuntu/Debian)下的 Nginx 或 Tengine 服务器中安装/配置/部署 SSL 证书、Nginx 配置-SSL&The plain HTTP request was sent to HTTPS port 解决 1. 登录 Linux
阅读全文
posted @ 2025-08-27 00:29
Higurashi-kagome
阅读(141)
推荐(0)
摘要:
在 Linux 上部署 Java 程序,报错: Invalid maximum heap size: -Xmx128m^M Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred.
阅读全文
posted @ 2025-08-23 23:12
Higurashi-kagome
阅读(61)
推荐(0)