摘要:
RequestBodyAdvice RequestBodyAdvice是 Spring 框架中的一个接口,用于在读取请求体之前(或读取得到的对象作为参数传入 @RequestBody 或 HttpEntity Controller 方法之前)进行自定义处理。 RequestBodyAdvice (S
阅读全文
posted @ 2025-06-26 00:04
Higurashi-kagome
阅读(9)
推荐(0)
摘要:
可以使用@JsonValue和@JsonCreator注解自定义枚举的序列化与反序列化需求。 import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue;
阅读全文
posted @ 2025-06-04 22:56
Higurashi-kagome
阅读(36)
推荐(0)
摘要:
使用 自动映射枚举中介绍了 MP 所提供的两种映射枚举方式: 方式一:注解标记 枚举属性使用 @EnumValue 注解,指定枚举值在数据库中存储的实际值。 @Getter @AllArgsConstructor public enum GradeEnum { PRIMARY(1, "小学"), S
阅读全文
posted @ 2025-06-04 00:14
Higurashi-kagome
阅读(38)
推荐(0)
摘要:
推荐阅读:MyBatis 自定义 TypeHandler 及原理解析 背景介绍 在实际开发中,我们经常会遇到需要将对象序列化为 JSON 存储到数据库,或者从数据库读取 JSON 字符串反序列化为对象的需求。MyBatis-Plus 提供了 AbstractJsonTypeHandler 来方便自定
阅读全文
posted @ 2025-06-01 15:54
Higurashi-kagome
阅读(37)
推荐(0)
摘要:
Field类提供了两个方法:getType()和getGenericType()。这两个方法用于获取字段的类型,但它们的用途和返回值有所不同。 1. getType() 返回类型:返回一个Class<?>对象,表示字段的具体类型。 用途:用于获取字段的原始类型,不考虑泛型信息。 示例:Field f
阅读全文
posted @ 2025-05-31 23:06
Higurashi-kagome
阅读(23)
推荐(0)
摘要:
原文:notepad 如何选择被标记的行?复制包含关键字的行 使用快捷键Ctrl+F打开【查找】对话框 点击【Mark】选项卡,进行如下设置: 勾选【标记所在行】 根据需要设置其他选项 点击【查找全部】按钮 返回主窗口,此时匹配的行已被标记为书签 点击【搜索】菜单 >> 【书签】 >> 【复制书签行
阅读全文
posted @ 2025-05-28 19:56
Higurashi-kagome
阅读(69)
推荐(0)
摘要:
@Configuration(proxyBeanMethods = false)的作用是禁用基于 CGLIB 的代理机制,通过牺牲部分 Spring 容器的特性来换取性能优化。以下是具体作用和场景分析: 一、默认行为(proxyBeanMethods = true) 代理机制 proxyBeanMe
阅读全文
posted @ 2025-05-26 00:01
Higurashi-kagome
阅读(57)
推荐(0)
摘要:
原文:MapStruct 使用指南 介绍 随着微服务和分布式应用程序的快速发展,数据完整性和安全性变得比以往任何时候都更加重要。在这些松散耦合的系统之间,安全的通信渠道和有限的数据传输是最重要的。大多数时候,终端用户或服务不需要访问模型中的全部数据,而只需要访问某些特定的部分。 数据传输对象 (Da
阅读全文
posted @ 2025-05-25 22:35
Higurashi-kagome
阅读(177)
推荐(0)
摘要:
写了几个 Excel 用的 vba 脚本,Alt+F11 打开 vba 编辑器之后,从文件夹拖拽文件到编辑器中,发现文件中的中文乱码,且脚本也不能正常执行。 找到 Excel 脚本所在文件夹,用文本编辑器打开(我用的 VSCode),将文件保存为 GBK 编码,再拖拽到编辑器中,中文正常显示,脚本正
阅读全文
posted @ 2025-05-24 21:27
Higurashi-kagome
阅读(75)
推荐(0)
摘要:
转自(部分调整):Maven:mirror 和 repository 区别 1.Repository(仓库) 1.1 Maven 仓库种类 Maven 仓库主要分为两大类: 远程仓库(Remote Repository):相当于公共的仓库,所有用户都可以访问,通常以 URL 的形式访问。 本地仓库(
阅读全文
posted @ 2025-05-23 00:47
Higurashi-kagome
阅读(251)
推荐(0)
摘要:
1、删除日志文件 2、修改 javax.jmdns 日志级别 【系统管理】=>【系统日志】=>【日志级别】=>【名称:javax.jmdns 级别:off】 3、重启 Jenkins,这里介绍通过 Web 界面重启,更多方式参考重启 Jenkins 的三种方式 登录到 Jenkins。 在 Jenk
阅读全文
posted @ 2025-05-22 23:35
Higurashi-kagome
阅读(27)
推荐(0)
摘要:
右键点击虚拟机 -> 点击设置进入设置页面: 此时用另一台电脑 Ping 此 IP 地址,就可以 Ping 通了。
阅读全文
posted @ 2025-05-22 21:58
Higurashi-kagome
阅读(80)
推荐(0)
摘要:
启动 Nginx 时报错 nginx bind() to 0.0.0.0:**** failed (13: Permission denied)。 bind() failed (13: Permission denied)说明 Nginx 进程缺乏绑定端口的系统权限,通常由以下原因导致: 特权端口限
阅读全文
posted @ 2025-05-22 21:42
Higurashi-kagome
阅读(176)
推荐(0)
摘要:
方法一:root root指令会将 location 匹配的路径追加到指定的目录后面。 server { # ... 其他配置 ... location /images/ { root /data/static; # 直接映射本地路径 expires 7d; # 设置浏览器缓存 7 天 access
阅读全文
posted @ 2025-05-22 21:24
Higurashi-kagome
阅读(192)
推荐(0)
摘要:
摘自:json 反序列化时泛型处理 Fastjson Fastjson 处理泛型比较简单,只需要定义需要泛型处理的com.alibaba.fastjson.TypeReference就可以,一段代码实现: ApiResult<DemoVo> api = JSONObject.parseObject(
阅读全文
posted @ 2025-05-22 20:16
Higurashi-kagome
阅读(31)
推荐(0)
摘要:
问题描述 当在 Linux 系统下执行本来存在的 Shell 脚本文件时,系统提示文件不存在。 原因分析 这个问题的主要原因是 Shell 脚本在编写时的系统与执行脚本的系统不一致,具体表现为: 在 Windows 系统编写的脚本,拷贝到 Linux 系统执行时会出现此问题 从 GitHub 下载包
阅读全文
posted @ 2025-05-17 16:54
Higurashi-kagome
阅读(107)
推荐(0)
摘要:
上传文件时报错 413 Request Entity Too Large,需调整 Nginx client_max_body_size参数。以下是具体步骤: 1. 修改 Nginx 配置文件 在 Nginx 配置文件(如nginx.conf或站点配置文件)的http、server或location块
阅读全文
posted @ 2025-05-15 22:05
Higurashi-kagome
阅读(230)
推荐(0)
摘要:
平时会用nohup java -jar your-project-name.jar > app.log 2>&1 &这样的命令来启动项目,将输出重定向到日志文件。 如果不指定输出文件,也就是nohup java -jar your-project-name.jar 2>&1 &,则nohup命令默认
阅读全文
posted @ 2025-05-14 19:25
Higurashi-kagome
阅读(77)
推荐(0)
摘要:
1. 通过配置文件设置 在application.properties或application.yml中直接配置日志级别。 示例(application.properties): # 设置全局默认日志级别(例如 INFO) logging.level.root=INFO # 设置特定包的日志级别(例
阅读全文
posted @ 2025-05-12 00:17
Higurashi-kagome
阅读(520)
推荐(0)
摘要:
1. 登录 MySQL 使用具有管理员权限的账户(如 root)登录 MySQL: mysql -u root -p 2. 创建用户 创建用户名为readonly_user,密码为your_password的用户。根据需要选择允许连接的主机: 允许本地连接:'readonly_user'@'loca
阅读全文
posted @ 2025-05-08 23:06
Higurashi-kagome
阅读(137)
推荐(0)
摘要:
先切换 dmdba 用户,停止实例: ./DmServiceXXX stop 进入$DM_HOME/script/root目录下,切换 root 用户,执行命令: ./dm_service_uninstaller.sh -n DmServiceXXX 其中 DmServiceXXX 是数据库实例的服
阅读全文
posted @ 2025-05-07 23:30
Higurashi-kagome
阅读(202)
推荐(0)
摘要:
原文:VMware 虚拟机与主机共享文件夹 1. 虚拟机 (M) -> 设置 (S)-> 选项-> 共享文件夹 -> 总是启用 -> 添加 : 2. 在弹出的对话框中选择主机目录作为共享目录: 3. 选择之后可以看到已经共享的目录路径: 共享目录使用: 在虚拟机中进入共享文件: cd /mnt/hg
阅读全文
posted @ 2025-05-07 23:11
Higurashi-kagome
阅读(664)
推荐(0)
摘要:
设置定时备份可参考 DM8:达梦数据库定时自动全库备份与删除备份,我这里是新建了一个全量备份的任务,每天零点执行。 下面主要介绍还原过程中遇到的问题。想看结果直接到还原步骤总结。 首先,从服务器拷贝出备份得到的文件夹,比如DB_DAMENG_FULL_2025_04_24_00_00_37,其中有.
阅读全文
posted @ 2025-05-07 20:28
Higurashi-kagome
阅读(413)
推荐(0)
摘要:
原文:Windows 远程登录 Ubuntu 桌面环境,简单修改。 前言 在 Windows 下远程访问 Linux 服务器的桌面,有几种常见的方法: xrdp(X Remote Desktop Protocol):xrdp 允许 Windows 使用 RDP(Remote Desktop Prot
阅读全文
posted @ 2025-05-01 21:21
Higurashi-kagome
阅读(117)
推荐(0)
摘要:
制作启动盘 1、首先到 Ubuntu 官网 下载 Ubuntu 桌面系统 iso 文件。 2、然后下载 Rufus。 3、插入 U 盘,运行 Rufus,然后如下配置并开始写入: 选择 Ubuntu 桌面系统 iso 文件 分区类型选择 GPT 选择显示 USB 外置硬盘 点击开始 安装 Ubunt
阅读全文
posted @ 2025-05-01 20:40
Higurashi-kagome
阅读(94)
推荐(0)
摘要:
背景 项目部署了 onlyoffice 容器来实现 word 文件编辑及预览。 现有如下现象: 编辑文档时,Ctrl + S 保存后,发现文件未更新到本地,了解到 onlyoffice 会先将改动缓存起来,不会马上调用回调 URL 保存更改到本地。 编辑完文件,关闭编辑器,文档长时间未保存到本地。
阅读全文
posted @ 2025-04-23 21:00
Higurashi-kagome
阅读(434)
推荐(0)
摘要:
如下 SQL 查出表的所有列名: SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'YOUR_TABLE_NAME' -- 替换为你的表名 AND OWNER = 'YOUR_SCHEMA_NAME'; -- 替换为你的模式名(如
阅读全文
posted @ 2025-04-14 22:20
Higurashi-kagome
阅读(172)
推荐(0)
摘要:
A 库是脚手架,从 A 库 fork 到 B 库,然后 B 库按业务需求开发。B 库开发过程中修复了脚手架相关的问题,或者为脚手架添加了新特性。此时除了手动复制代码外,如何把这些变动应用到 A 库呢? 可以使用 cherry-pick。 cherry-pick 以维护脚手架 合并指定的一些提交到当前
阅读全文
posted @ 2025-04-12 00:47
Higurashi-kagome
阅读(31)
推荐(0)
摘要:
总结自:《Maven 实战》 一、Maven 生命周期:构建流程的标准化 Maven 通过生命周期将项目构建过程抽象为三个部分,每个部分包含多个有序阶段(Phase),形成标准化的构建流水线。 可以说,生命周期就是对所有构建过程的抽象和统一。其包含了项目的清理、初始化、编译、测试、打包、集成测试、验
阅读全文
posted @ 2025-04-11 21:55
Higurashi-kagome
阅读(22)
推荐(0)
摘要:
一、作用 @PostConstruct是 Java EE(JSR-250)规范中的注解,被 Spring 框架支持,用于标记 Bean 初始化完成后执行的方法。其核心作用如下: 依赖注入后执行:确保在 Bean 的所有依赖(通过@Autowired、@Resource等注入)完成后,再执行初始化逻辑
阅读全文
posted @ 2025-04-05 15:22
Higurashi-kagome
阅读(63)
推荐(0)
摘要:
对比@Autowired注解,ObjectProvider能更好地处理可选依赖、多候选 Bean、延迟初始化和循环依赖等复杂场景。 一、ObjectProvider 基础:超越 @Autowired 的安全之选 ObjectProvider是 Spring 4.3+ 提供的接口,其核心优势在于 按需
阅读全文
posted @ 2025-04-05 12:01
Higurashi-kagome
阅读(28)
推荐(0)
摘要:
情况是一台虚拟机上的达梦数据库连不上了,实际上也无法通过 SSH 连上虚拟机,尝试通过 VMWare 控制台重启服务器。 重启后,机器还是无法连接,扩大磁盘重启,勉强能连,但是很卡。后来这个事暂时搁置了。 到今天一看,机器能连了,而且很顺畅,尝试重启达梦数据库。结果失败: [root@localho
阅读全文
posted @ 2025-03-31 19:40
Higurashi-kagome
阅读(60)
推荐(0)
摘要:
内置实现 MyBatis 对枚举类型提供了两种默认的 TypeHandler 实现: EnumTypeHandler:使用枚举的 name() 值进行映射[1] EnumOrdinalTypeHandler:使用枚举的 ordinal() 值进行映射 默认情况下使用EnumTypeHandler。
阅读全文
posted @ 2025-03-26 23:33
Higurashi-kagome
阅读(190)
推荐(0)
摘要:
背景是在 SpringBoot 项目中使用了 dynamic-datasource 实现动态动态数据源,为了防止在生产库中执行修改操作,我希望限制只当当前数据源为指定值时,才能进行更新操作,其他数据源仅可读。 可创建如下 MyBatis 拦截器来实现: @Intercepts({ @Signatur
阅读全文
posted @ 2025-03-18 22:52
Higurashi-kagome
阅读(23)
推荐(0)
摘要:
在 MyBatis 中,SqlSessionFactory 和 SqlSession 就是工厂方法模式的应用。SqlSessionFactory 是工厂接口,它定义了创建 SqlSession 的方法。 SqlSessionFactory: package org.apache.ibatis.ses
阅读全文
posted @ 2025-03-06 19:24
Higurashi-kagome
阅读(26)
推荐(0)
摘要:
推荐阅读:策略模式 GenericTokenParser 使用 MyBatis 中有一个 GenericTokenParser 类,它用于解析字符串中的占位符: public class GenericTokenParser { private final String openToken; pri
阅读全文
posted @ 2025-03-02 20:10
Higurashi-kagome
阅读(15)
推荐(0)
摘要:
Executor 接口是 MyBatis 最核心的接口之一,它定义了执行 SQL 语句的方法,包括查询、更新等操作: public interface Executor { ResultHandler NO_RESULT_HANDLER = null; int update(MappedStatem
阅读全文
posted @ 2025-02-18 23:27
Higurashi-kagome
阅读(18)
推荐(0)
摘要:
MyBatis StatementHandler 接口主要负责 SQL 语句的执行和参数的设置: public interface StatementHandler { Statement prepare(Connection connection, Integer transactionTimeo
阅读全文
posted @ 2025-02-18 23:27
Higurashi-kagome
阅读(12)
推荐(0)
摘要:
在 MyBatis 中,TypeHandler 接口用来给 PreparedStatement 设置参数,以及从 ResultSet 获取结果: public interface TypeHandler<T> { void setParameter(PreparedStatement ps, int
阅读全文
posted @ 2025-02-18 23:27
Higurashi-kagome
阅读(23)
推荐(0)
摘要:
基于:银河麒麟 V10 离线安装 Nginx 准备工作 下载所需文件 下载 Nginx 前往 Nginx 官网 下载离线压缩包 下载依赖包 OpenSSL:前往 OpenSSL 官网 下载 PCRE2:前往 PCRE2 GitHub 下载 Zlib:前往 Zlib GitHub 下载 安装步骤 1.
阅读全文
posted @ 2025-02-13 23:26
Higurashi-kagome
阅读(2369)
推荐(0)