自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Muscleheng的博客

一路欣赏一路行,不错过每一处风景!

  • 博客(149)
  • 资源 (10)
  • 收藏
  • 关注

原创 Spring Boot 3.x 集成 DeepSeek 实现 Function Calling(工具调用)

本文介绍了如何在Spring Boot 3.x中集成DeepSeek实现Function Calling功能。主要内容包括: 技术栈:使用Spring Boot 3.5.16 + Spring AI 1.0.1 + DeepSeek + Java 21 功能说明:Function Calling允许AI模型自动识别用户意图,调用外部函数获取数据并组织回答 实现步骤: 引入Spring AI BOM和DeepSeek Starter依赖 配置DeepSeek API密钥和模型参数 通过@Tool和@ToolP

2026-07-28 17:09:23 236

原创 SpringBoot 集成 DeepSeek 实现 RAG 文档问答

摘要 本文介绍如何使用SpringBoot集成DeepSeek实现RAG(检索增强生成)文档问答系统。RAG通过结合信息检索和大语言模型,解决了大模型知识截止和幻觉问题。系统采用Spring Boot 3.5.16和Spring AI 1.0.1框架,使用DeepSeek作为大模型,本地ONNX模型all-MiniLM-L6-v2进行文本向量化,SimpleVectorStore作为内存向量存储,Apache Tika解析多种文档格式。文章详细说明了pom依赖配置、API Key设置、本地模型文件存放位置,

2026-07-28 16:53:26 450

原创 安装 Codex(ChatGPT) 对接国产大模型

安装 CodeX 并对接国产大模型,其实非常简单,基本就是傻瓜式安装。

2026-07-18 17:32:30 412

原创 Java 服务启动慢问题解决

本文分析了Java服务启动慢的问题,发现是由于云服务器主机名未在/etc/hosts文件中配置映射,导致DNS解析阻塞。解决方案是在/etc/hosts中添加主机名与127.0.0.1或内网IP的映射关系,从而避免启动时的DNS查询延迟。该问题在云服务器上较为常见,主要由于自动生成的主机名未与hosts文件同步所致。修复后Java服务启动速度恢复正常。

2026-07-12 12:03:27 225

原创 Spring Ai SpringBoot集成DeepSeek

摘要:本文介绍了如何在SpringBoot项目中快速集成DeepSeek大模型。首先在pom.xml添加spring-ai-starter-model-deepseek依赖,然后在配置文件中设置API密钥和模型参数。通过三个示例演示了不同调用方式:1)简单问答;2)带预设角色的对话(模拟鲁迅风格);3)支持上下文的连续对话。测试代码展示了如何构建Prompt对象、处理消息历史,以及获取模型响应。这种集成方式简化了AI功能开发,适合需要智能对话功能的Java应用。

2026-07-03 18:26:21 189

原创 feign.RetryableException: Read timed out ?是 Druid 在“作妖”

摘要:项目在PostgreSQL数据库查询时遇到10秒超时问题,即使Druid连接池和JDBC URL已配置180秒超时仍无效。排查发现是Druid 1.2.12~1.2.21版本存在隐藏的10秒超时限制,升级到1.2.28后问题解决。新版本中不配置socketTimeout参数时,将遵循数据库默认超时设置。该案例说明特定版本中间件的默认配置可能覆盖用户显式设置,升级依赖版本是解决此类问题的有效方法。

2026-05-26 20:06:30 45

原创 Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错

摘要:Navicat连接PostgreSQL报错的原因是版本不兼容,旧版Navicat会查询PostgreSQL 15已移除的datlastsysoid字段。解决方法是通过修改Navicat安装目录下的libcc.dll文件,将"SELECTDISTINCTdatlastsysoid"替换为"SELECTDISTINCTdattablespace"即可成功连接。

2026-05-21 17:23:23 97

原创 安装 Claude Code 对接国产大模型

本文介绍了ClaudeCode和CCSwitch的安装配置方法。首先通过npm安装ClaudeCode并验证版本,然后下载CCSwitch工具进行多模型管理配置。最后通过命令行启动ClaudeCode即可使用对接的国产大模型。整个过程简单易操作,适合开发者快速部署AI编程环境。

2026-05-21 11:11:39 399

原创 Linux安装LibreOffice

CentOS、RHEL、Fedora、Rocky Linux、AlmaLinux、OpenEuler(欧拉)注意版本,LibreOffice太高的版本操作系统不一定兼容。如果命令不存在,不能输出版本号。直接yum或者dnf安装。

2025-12-29 17:30:36 1113

原创 @Async和@Transactional可以同时使用吗?

摘要:@Async和@Transactional可以同时使用且事务有效。原理是@Async先开启异步线程,@Transactional随后在同一个线程内生效。验证表明Spring AOP机制确保@Async优先级更高。需注意同类内方法相互调用会导致注解失效,可通过注入ApplicationContext强制走代理逻辑解决。

2025-11-19 12:43:31 481

原创 AOP的执行顺序怎么控制?

在多AOP切面场景下,通过@Order注解可以控制执行顺序。实验验证:当两个自定义注解@AnnotOne和@AnnotTow同时标注方法时,在对应的切面类上使用@Order设置优先级。测试显示@Order(1)的切面先于@Order(2)执行,数值越小优先级越高。通过交换Order值验证了执行顺序随之改变,证实了@Order注解能有效控制多个AOP切面的执行顺序。

2025-11-17 11:08:03 262

原创 LocalDateTime 23:59:59 入库后变成第二天 00:00:00

摘要:LocalDateTime在获取当天最大时间(LocalTime.MAX)时会返回纳秒级精度的23:59:59.999999999,而数据库只支持秒级精度,导致入库时被四舍五入为次日的00:00:00。解决方案是:1)明确指定精度为秒级time.with(LocalTime.of(23,59,59));2)使用hutool工具类的LocalDateTimeUtil.endOfDay(time,true)。

2025-11-14 16:00:08 332

原创 Excel导出报错at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

线上环境Excel导出报错,测试环境、本地环境都没问题,报错内容如下:原因:这个错误是由于生产环境中缺少字体配置导致的。发生在 Java 试图获取字体配置时,特别是在使用 Apache POI 进行 Excel 导出时。

2025-09-10 15:40:02 301

原创 scp发送文件忽悠密码

使用SSH密钥认证替代SCP密码登录。我们在使用scp发送文件过程中,执行完命令后需要输入目标服务器的密码,一般情况下没什么问题,但是有一种场景,比如需要使用nohup后台发送大文件,执行完命令后就后台运行了,根本没法输入密码,通过查阅质料倒是有几种自动输入密码的方法,但是不够安全,所以需要使用SSH密钥认证替代SCP密码登录。# cd到 ~/.ssh/ 目录查看查看到生成的密钥文件 .pub文件。

2025-07-10 16:24:33 614

原创 pigz 快速压缩与解压缩

1、pigzLinux Pigz是一款高性能,是能并行多核处理的文件压缩工具,,可以打包和解压由 tar -zcvf/-zxvf 打包并压缩的文件(即标准的 .tar.gz 文件),但需要结合 tar 命令一起使用。适用场景:大文件、多核 CPU 环境,需快速压缩/解压。tar -zcvf 生成的 .tar.gz 文件原理是:先用 tar 打包文件(生成 .tar),再用 gzip 压缩(生成 .tar.gz);

2025-07-10 15:29:18 858

原创 简单的404静态html页面

404静态html页面,可以添加各种提示语,例如:系统升级中、页面不存在等等!如果需要,可以进行nginx配置,访问直接返回404页面。样式如下,颜色可自己通过css代码进行调节。page-404.html文件。

2025-07-08 15:51:27 1766

原创 OpenSSH离线升级版本

场景:在和外网隔绝的服务器上升级openSSH。如果是在有网的情况下升级,可以使用yum或dnf包管理器命令升级,如果是在离线环境或者yum仓库提供的版本太低,不足以满足需求,就需要手动安装。

2025-07-03 11:12:03 2099 1

原创 docker镜像加速

国内现在很多docker镜像仓库都关闭了,国内拉取 Docker 镜像必须依赖国内镜像源:比如网易、中科大、阿里等。但最近部分国内用户遇到了无法拉取 Docker 镜像的问题,即使换了国内源也会拉取失败。除非是使用云厂商的服务器,然后可以使用云厂商提供的镜像,比如阿里云。

2025-06-25 18:05:37 726

原创 Java项目启动脚本

Java项目启动脚本。

2025-06-20 23:05:09 266

原创 docker-compose 部署服务

使用docker-compose部署服务,离线环境下拉取不到镜像的情况,可以在有网络的服务器上拉取镜像,把镜像打成离线包,然后上传到无网络的内网服务器上再使用docker部署。具体操作参考下面的文章:把docker镜像打成离线包-CSDN博客隔绝外网的情况下使用docker部署服务是拉取不到镜像的,不过还是有解决方案:在有网络的服务器上拉取镜像,把镜像打成离线包,然后上传到无网络的内网服务器上再使用docker部署。

2025-06-17 18:00:27 1389

原创 把docker镜像打成离线包

隔绝外网的情况下使用docker部署服务是拉取不到镜像的,不过还是有解决方案:在有网络的服务器上拉取镜像,把镜像打成离线包,然后上传到无网络的内网服务器上再使用docker部署。离线环境安装docker和docker-compose参考下面这篇文章Linux环境离线安装Docker和docker-compose-CSDN博客Linux环境离线安装Docker和docker-compose.tar。

2025-06-17 16:25:42 1120

原创 MySQL 自增主键 ID 设置为 0有坑

场景:A、B两个数据库有同样的一个T表,从A库T表导出数据、导入到B库T表,导入成功后发现T表中有一条数据和其他表数据关联不上了,通过排查才发现,T表中的id为自增主键,有一条数据的id为0,导入到B库的T表后id不再是0,而是下一个自增值,所以其他表如果是如果该id来和T表关联,那自然是关联不上。PS:同一个表里面导出数据后再重新导入也会出现同样的问题。

2025-06-16 22:11:58 618

原创 Linux环境离线安装Docker和docker-compose

Linux环境离线安装Docker和docker-compose

2025-06-16 22:04:18 2164

原创 docker-compose和docker下载

官网下载,下载之前到官方的发行说明页面查看一下版本docker-compose和docker的对应关系,虽然没有严格的版本对应关系,为了更好的使用体验,建议还是使用对应的版本。

2025-06-11 23:46:46 2096

原创 docker和docker-compose的版本对应关系怎么看?

docker和docker-compose的版本对应关系怎么看?就在docker-compose的发行说明里面看,示例如下:

2025-06-11 22:42:56 2483

原创 ApplicationRunner执行顺序问题

作用:ApplicationRunner‌是Spring Boot提供的一个接口,主要用于在Spring应用完全启动后执行特定的初始化任务或逻辑,例如数据库初始化、配置文件加载、缓存预热等。执行结果:可以看到,执行顺序就是按照@Order()注解来执行的,数值越小执行顺序越靠前。具体用法这里就不做详细介绍了。

2025-05-06 16:57:47 488

原创 解决报错:Could not autowire. There is more than one bean of ‘RedisConnectionFactory‘ type.

原因:项目中原先引入了spring-boot-starter-data-redis依赖,然后又引入了redisson-spring-boot-starter依赖,最终导致依赖冲突。因为redisson-spring-boot-starter依赖包含了spring-boot-starter-data-redis依赖。解决:去掉spring-boot-starter-data-redis依赖即可。看这提示就是存在多个RedisConnectionFactory Bean。

2025-05-06 16:39:59 497

原创 Java controller接口出入参时间序列化转换操作

场景:在controller编写的接口,在前后端交互过程中一般都会涉及到时间字段的交互,比如:后端给前端返的数据有时间相关的字段,同样,前端也存在传时间相关的字段给后端,最原始的方式就是前后端都先转换成字符串和时间戳后进行传输,收到后再进行转换,特别麻烦。为了方便可以使用注解或者配置做到时间字段的自动转换,这里列举两种简单的操作。

2025-04-29 10:04:41 528

原创 java服务报错ERROR[http-nio-8088-exec-1] org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:175)

项目使用的是jdk1.8,但是IDE默认使用了jdk11,最终导致打包后出现问题。原因:打包的时候指定的jdk版本错误!

2025-04-28 18:29:40 745

原创 解决报错:this[kHandle] = new _Hash(algorithm, xofLen);

这个错误是由于 Node.js 的加密模块与当前项目使用的 OpenSSL 版本不兼容导致的。常见于 Node.js v17+ 版本,因为这些版本使用了 OpenSSL 3.0,而一些老项目可能依赖旧版的加密算法。

2025-04-23 21:10:06 1164

原创 @RequiredArgsConstructor注解是个什么东西?

帮我们自动生成一个包含所有 final 字段的构造函数,这样就不需要使用注入相关的注解(@Autowired、@Resource)了。编译后的代码情况如下,可以看出,单独用@Autowired或@Resource注解标识的字段不会出现在构造方法中。先看看我们常见的一个写法,使用@Autowired在指定字段上,让 spring 完成 bean 自动装配的工作。1、自动生成构造函数:为类中所有 final 字段和标记为 @NonNull 的字段生成一个构造函数。2.如果有继承关系,不会包含父类的字段。

2025-04-18 10:04:18 879

原创 为什么不能在foreach循环中进行元素的remove/add操作?

不要在for/foreach循环中进行元素的remove/add操作,为什么?因为会报错。这不是废话吗,具体说明原因呢,这里简单的来看看怎么回事。比较官方的回答:某些集合(如 ArrayList、HashMap等)在添加或删除元素时,会调整其内部数组的大小或重新排列元素,可能会导致迭代器遍历到错误的索引或元素,从而破坏集合的完整性。不仅如此,在同一个集合被多线程读写过程中也会有同样的问题,比如一个线程在遍历,同时其他线程在进行remove/add操作,同样会抛异常。

2025-02-10 11:03:11 552

原创 list集合分页查询

list集合分页查询。

2024-12-09 20:47:17 259

原创 minio通过nginx代理后下载不了文件解决方法

minio通过nginx代理后下载不了文件解决方法

2024-11-28 16:32:26 1524 1

原创 minio桶设置权限

minio的桶Bucket权限设置,如果设置为private,文件的访问或下载需要URL带上签名。如果设置为public,直接通过文件的URL就能访问或下载。

2024-11-28 16:10:04 17342

原创 登录时用户名密码加密传输(包含前后端代码)

登录时用户名密码加密传输,这里使用RSA非对称加密,前端使用公钥加密,后端使用私钥解密,这样就不会暴露私钥。

2024-10-18 15:34:39 6914 1

原创 jvm内存溢出问题排查Java服务自动停止问题排查

Java服务自动停止,Java服务内存溢出问题解决记录。过程描述:服务器上的一个项目突然服务不了了,登录服务器一看,服务被停了,第一反应大概率就是内存溢出导致的,结果查看日志没有任何报错,就很奇怪,然后就在启动命令里面加上了一个命令,该命令的作用就是在发生内存溢出的时候会自动生成dump文件(jvm内存快照),把该文件下载到本地后用jvisualvm应用打开就能分析出问题。从日志可以看出,由于Java服务占用的内存太多了,为了能保证系统的正常运行,操作系统就把Java服务kill停止了。

2024-10-15 17:54:47 1439 1

原创 重装系统后进不了系统

记录一下重装系统后进不了系统并且报错的几种原因。这里记录一下解决思路,系统安装好了,但是就是进不去并且报错,大概就是启动的时候BIOS没有识别到安装系统的硬盘或者BIOS启动引导方式设置错误问题。

2024-10-08 21:39:25 14627

原创 ThreadLocal解惑

比较书面的回答:类如其名,线程本地变量。当使用 ThreadLocal 维护变量时,ThreadLocal 为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程。这句话没问题,但容易被人误解,会被误以为:任意变量用ThreadLocal维护都是线程隔离的。后面会解答这个问题。

2024-08-23 22:43:13 1086

原创 【解决】npm install 报错 cb() never called! This is an error with npm itself. Please report this error at

场景:npm install 报错总结一下,出现这个错误主要有两种原因1.npm缓存问题、2.node.js版本问题。附加node.js管理工具nvm的安装教程。

2024-07-28 19:48:57 9592 1

Linux版本LibreOffice

LibreOffice 是一款 开放源代码的自由免费全能办公软件,可在 Microsoft Windows、GNU/Linux 和 macOS 等操作系统上运行。它包含多个组件,如 Writer(文字处理)、Calc(电子表格)、Impress(演示文稿)、Draw(绘图)、Math(数学公式编辑) 和 Base(数据库管理),支持开放文档格式(ODF)并兼容 Microsoft Office 格式。LibreOffice 旨在提高用户的创造力和工作效率,拥有简洁的界面和强大的工具。 安装教程:https://blog.csdn.net/Muscleheng/article/details/156393340?fromshare=blogdetail&sharetype=blogdetail&sharerId=156393340&sharerefer=PC&sharesource=Muscleheng&sharefrom=from_link

2025-12-29

apache-maven-3.6.3

apache-maven-3.6.3包含linux和windows版本(.tar.gz和zip包)

2024-04-12

Navicat12安装包.zip

Navicat12安装包,自己就在用,百分百可用;压缩包打开后是安装程序和补丁;Navicat Premium 12是一套数据库开发管理工具,支持连接MySQL、Oracle、SQL server、PostgreSql等多种数据库

2020-07-02

SQLite3完整安装包

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 直接访问其存储文件。

2018-07-25

基于Java FX实现的可视化排序算法

基于Java FX实现的可视化排序算法,开发工具:Eclipse,JDK版本:1.8, 下载后在eclipse上添加JavaFX 插件就可以使用。演示地址: https://blog.csdn.net/Muscleheng/article/details/82285813

2018-09-01

solr定时同步jar包.zip

该jar包(solr-dataimportscheduler-1.2.jar)实现了solr数据同步的增量、全量同步,还添加了登录验证功能,同时还包含了源码,亲测可用

2020-05-22

ik-analyzer-8.3.0分词插件.zip

solr默认没有中文分词功能,需要自己配置中文分词插件,这个ik-analyzer-8.3.0.jar完美集成

2020-05-22

jquery.placeholder.js

使用该插件(jquery.placeholder.js)解决IE9及以版本下对placeholder的兼容性问题

2018-07-19

eclipseSVN-site-1.10.11.zip

SVN整合MyEclipse 1 下载插件 site-1.10.11.zip 2 MyEclipse 点击菜单栏Help–>Install from Site 3 点击add,输入svn 然后找到下载好的安装包 site-1.10.11.zip 4 选中Subclipse和SVNKit,点击next,next,知道finish 5 忽略警告,点击ok 6 提示重启,点击yes,重启后生效 7 重启完成后点击myeclipse上方window选择showview,搜索svn

2020-02-23

HttpClient所需jar包

httpclient jar包是一款能够支持HTTP协议最新的版本和建议的扩展包,为Java开发人员提供了高效的、最新的、功能丰富的HTTP协议,还能处理各种HTTP相关的问题,支持所有的http方法、自动转向、https协议、代理服务器等功能,为JAVA开发工作带来更多便捷

2019-03-07

ant-1.8.2.jar

apache的工具类jar,包含了我们常用的各种工具,比如文件的操作、发送邮箱等等

2018-12-26

Mybatis自动映射工具

Mybatis自动映射工具,该工具可自动生成相应的映射文件(xml文件、java文件)

2018-07-19

空空如也

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

TA关注的人

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