- 博客(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
原创 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
原创 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
原创 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
原创 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
2025-12-29
Navicat12安装包.zip
2020-07-02
基于Java FX实现的可视化排序算法
2018-09-01
solr定时同步jar包.zip
2020-05-22
eclipseSVN-site-1.10.11.zip
2020-02-23
HttpClient所需jar包
2019-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅