自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DN金猿的博客

爱好编程的小沙弥

  • 博客(465)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何判断binlog是否开启?

MySQL可通过SHOW VARIABLES LIKE 'log_bin'查看binlog状态(ON为开启)。检查log_bin_basename路径或SHOW MASTER STATUS获取当前binlog文件。5.7及以下版本默认关闭,需在配置文件中添加log-bin=mysql-bin并重启服务。8.0+版本默认开启。

2025-08-21 11:36:33 3

原创 rabbitmq发送的延迟消息时间过长就立即消费了

RabbitMQ延迟消息被立即消费的常见原因:1)TTL超过49.7天(32位整数限制);2)插件配置错误,未正确定义x-delayed-message交换机;3)死信队列参数设置不当;4)消息属性冲突;5)ACK模式问题。重点检查延迟时间是否超过4294967295毫秒(约49.7天)这一最常见原因,以及确保正确配置x-delay参数和交换机类型。案例中设置1年延迟(超过49天限制)会导致消息立即消费。

2025-08-19 11:58:22 230

原创 “openfeign“调用接口上传文件报错:Failed to deleted temporary file used for part [file]

在使用FeignClient上传文件时,必须明确指定consumes = MediaType.MULTIPART_FORM_DATA_VALUE参数。错误写法中缺少该参数会导致文件上传失败,正确写法需要在@PostMapping注解中显式声明consumes类型为multipart/form-data。这是Feign处理文件上传请求的必要配置,确保正确识别和传输multipart格式数据。

2025-08-16 16:59:31 202

原创 “openfeign“ 报错Invalid bound statement (not found)

摘要: MyBatis报错"Invalid bound statement (not found)",表明找不到接口方法com.wut.config.UserSrvFeignClient.findUserByUserId对应的SQL映射。该错误发生在调用ContentService.findShareContent方法时,可能原因包括:XML映射文件缺失、方法名不匹配、未正确扫描Mapper接口或配置问题。需检查SQL映射文件与接口方法的对应关系及MyBatis配置。

2025-08-16 16:50:50 319

转载 为什么要实现 Serializable?——深入理解 Java 序列化机制

Java序列化机制解析:何时需要实现Serializable接口? Java中的Serializable是一个标记接口,用于声明类可序列化。当需要将对象保存到文件、网络传输或在分布式系统(如Dubbo)中使用时,必须实现该接口。序列化通过ObjectOutputStream将对象转为字节流,反序列化则还原对象。但并非所有场景都需要实现Serializable,比如前端返回JSON数据时,Spring会自动转换而不依赖Java原生序列化。Java不默认支持所有类序列化是出于安全(防止敏感数据泄露)和性能考虑。

2025-08-07 09:18:28 33

原创 mysql查找数据库表中某几个连续的编号中中断的编号

MySQL查找连续编号中断位置的方法:1. 基于范围的查询通过自连接找出断点;2. 临时表生成法对比实际数据与序列;3. MySQL 8.0+的窗口函数法使用LEAD/LAG高效定位;4. 特殊编号需转换处理。主要方法包括范围查询、临时表对比和窗口函数,适用于不同版本和场景的连续编号检查。

2025-07-26 13:51:09 76

原创 Integer s = 1 == status ? 1 : 2 == status ? 3 : 3 == status ? 4 : null;在这个三元表达式中status=5时为什么会抛出空指针异常

Java三元表达式抛出NPE的根本原因是自动拆箱机制:当表达式包含int字面量时,结果类型会被推断为int,若最终返回null则在拆箱时抛出异常。解决方案包括显式声明Integer类型或使用switch表达式。关键要确保各分支返回相同包装类型,避免自动类型推断风险。

2025-07-23 19:58:02 178

原创 mysql中ROW_NUMBER()、RANK()、DENSE_RANK()用法及区别

MySQL的ROW_NUMBER() OVER()窗口函数为结果集行分配唯一序号,支持分组排序。核心特点: 语法结构:包含可选的PARTITION BY分组和必需的ORDER BY排序子句 典型应用: 高效分页查询(替代LIMIT/OFFSET) 分组内排序(如按学科成绩排名) 数据去重(保留组内最新记录) 版本差异: MySQL 8.0+原生支持 低版本需用变量模拟实现 对比其他排名函数: 唯一区别对待相同值 保证序号连续不跳号 执行时机:在WHERE之后、最终ORDER BY之前处理 (注:全文98字,

2025-07-23 18:50:24 153

原创 实体类序列化报错:Caused by: java.lang.NoSuchMethodException: com.xx.PoJo$Item.<init>()

摘要: Spring框架在处理嵌套属性时抛出InvalidPropertyException异常,提示无法实例化Pojo类的内部类Item。原因是Item类缺少无参构造方法,导致Spring无法自动创建实例。解决方法是在Item类上添加@NoArgsConstructor注解或显式定义无参构造方法。这属于Lombok注解使用不完整导致的常见问题,当同时使用@AllArgsConstructor和@Data时,需要显式添加@NoArgsConstructor才能生成无参构造器。

2025-07-18 10:18:46 220

原创 MySQL查询今天、昨天、上周、近30天、去年等的数据的方法

本文介绍了SQL中常用的日期时间查询方法,主要包括: 删除超过3天的订单记录 查询当天、昨天、7天内、30天内、本月、上月等日期范围的记录 使用DATEDIFF、DATE_SUB、TO_DAYS等日期函数 获取季度、年周等特殊时间段的查询方法 详细解释了各日期函数的语法和用法 这些方法可以帮助开发者高效地进行基于时间的数据库查询操作,适用于各种业务场景。

2025-07-15 11:38:31 127

原创 jvm调优中各参数如何设置比较合适

JVM调优核心参数配置需根据生产环境性能指标动态调整。内存区域方面,建议将-Xms和-Xmx设为相同值(物理内存≤8G时4-6G,≥16G时70%-80%),并优化新生代与老年代比例。垃圾回收器选择应考虑场景需求:高吞吐用Parallel,低延迟用G1,超大堆用ZGC/Shenandoah。线程栈大小建议设为-Xss256k,NIO场景需限制直接内存。调优后应通过jstat、jmap等工具监控GC频率、CPU利用率等关键指标,确保Old区使用率<90%,Young GC时间<100ms。典型配置

2025-07-15 09:33:30 248

原创 springboot+swagger2文档从swagger-bootstrap-ui更换为knife4j及文档接口参数不显示问题

摘要:本文介绍了将SpringBoot项目中Swagger2+swagger-bootstrap-ui升级替换为Knife4j的详细方案。主要变更包括:1)替换Maven依赖,采用Knife4j 2.0.9版本而非3.x版本以避免兼容性问题;2)修改配置文件前缀从swagger变为knife4j;3)调整配置类注解,将@EnableSwaggerBootstrapUI和@EnableSwagger2替换为@EnableKnife4j和@EnableSwagger2WebMvc。该方案保留了原有Swagger

2025-07-12 17:42:27 103

转载 Spring Boot 基础教程:集成 Swagger2+Knife4j增强

本文介绍了如何在SpringBoot项目中集成国产接口文档管理工具Knife4j,详细讲解了从创建项目、添加依赖、配置文档信息到编写测试接口的全过程。针对集成过程中可能遇到的空指针异常和请求路径未找到问题,提供了两种解决方案:降低SpringBoot版本或添加@EnableWebMvc注解,并配置资源处理规则。Knife4j作为Swagger的增强版,不仅界面美观,还提供了丰富的接口统计和测试功能,是接口文档管理的理想选择。通过本文的指导,开发者可以轻松实现Knife4j的集成,提升API文档的可读性和易用

2025-07-08 11:50:16 62

原创 Swagger+knife4j 易于整合SpringBoot的OpenAPI文档生成利器

Swagger是一种用于自动生成API文档的开源框架,通过集成SpringBoot可以便捷地生成接口文档并支持在线测试。文章介绍了SpringBoot集成Swagger2的基本步骤(添加依赖、配置类、注解使用)以及常用注解的功能说明。同时推荐了Swagger的增强方案Knife4j,对比了其更美观的界面和更丰富的功能,并详细说明了Knife4j在不同架构(单体/微服务)中的使用方式。通过Swagger或Knife4j,开发者可以高效维护API文档,保证文档与代码的一致性。

2025-07-08 11:21:30 933

原创 @RequestMapping中consumes和produces的区别

在Spring MVC中,注解的consumes和produces属性用于精确控制HTTP请求和响应的内容类型,它们在RESTful API开发中扮演着关键角色。

2025-07-07 17:38:39 125

原创 springsecrity5配置后,springboot项目启动报错:‘xxx.xxx.HttpSecurity‘ that could not be found.

摘要:在配置Spring Boot Admin安全规则时,使用响应式配置(@EnableWebFluxSecurity)会导致"NoSuchBeanDefinitionException"错误,提示缺少HttpSecurity类型的bean。原因是响应式和非响应式安全配置不兼容。解决方案是将配置改为非响应式方式,使用@EnableWebSecurity注解并定义SecurityFilterChain,将pathMatchers替换为antMatchers。修改后,应用能正常启动,安全规则

2025-07-05 16:46:48 59

原创 springsecurity5配置之后启动项目报错:authenticationManager cannot be null

摘要:Spring Boot Admin安全配置中出现"authenticationManager cannot be null"错误。该问题源于SecurityConfig类中缺少认证管理器配置,导致Spring Security无法构建安全过滤器链。错误日志显示,在创建springSecurityFilterChain bean时,ServerHttpSecurity.build()方法因缺少认证管理器而抛出IllegalArgumentException。建议解决方案是在配置类中添

2025-07-05 16:16:00 86

原创 Spring或SpringCloud查看指定版本的文档

要查看Spring或SpringCloud指定版本的文档,首先进入官网找到对应项目。对于SpringBoot,打开"LEARN"标签可查看部分版本文档。若需查看全部版本,访问当前版本的"ReferenceDoc."链接,删除"docs/"后的内容(保留"/")即可显示所有版本。选择所需版本(如2.6.1),点击"reference"后选择HTML格式即可查看完整文档。SpringCloud的操作方法相同。该方

2025-07-04 09:44:40 267

原创 SpringCloudBus使用/actuator/bus-refresh出现“status“: 405,“error“: “Method Not Allowed“

摘要:在使用SpringCloud Bus(2021.0.8)时,向"/actuator/bus-refresh"发送POST请求出现405错误。经排查发现,SpringCloud 3.1.X版本后端点名称已变更为"busrefresh"。解决方法是将配置文件中的暴露端点从"bus-refresh"改为"busrefresh",修改后重启服务即可正常使用配置刷新功能。最终配置为:management.endpoints.web.

2025-07-03 15:40:54 30

原创 Spring cloud 错误No spring.config.import set

Spring Cloud项目启动报错"ConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set",原因是缺少必要的配置导入设置。解决方法是在pom.xml中添加spring-cloud-starter-bootstrap依赖: org.springframework.cloud spring-cloud-starter-bootstrap 该依赖会启用bootstrap配置

2025-07-03 10:32:10 122

原创 git本地分支回退到某个commit,并推送远程,使远程分支也恢复到这个commit

Git回退到指定commit的操作指南:1. 切换到目标分支后,使用git log查看要回退的commit哈希值;2. 可选择两种回退方式:git reset(三种模式:--soft保持工作区/暂存区、--mixed默认改变暂存区、--hard强制改变所有)或git revert创建反向commit;3. 如需推送到远程,git reset需用--force强制推送,git revert则无需;4. 注意--hard会丢失后续修改,强制推送会重写历史,团队协作时建议优先使用git revert。操作前应做好

2025-07-02 09:58:23 1035

转载 电商订单ElasticSearch同步解决方案--使用logstash

本文介绍了使用Logstash同步MySQL订单数据到ElasticSearch的完整方案。主要内容包括: 环境准备:安装JDK和Logstash 配置Logstash管道:通过JDBC输入插件设置订单表和订单项表的增量同步 实现细节:使用last_run文件记录同步位置,设置每分钟同步频率 输出配置:将数据分别写入不同ES索引 高级应用:提供了Java代码示例展示ES的CRUD操作 注意事项:包括首次同步全量数据、实时性要求高的业务处理方案等 该方案可实现订单数据的准实时同步,为订单查询和分析提供高效支持

2025-06-25 17:25:10 63

原创 elk+filebeat收集springboot项目日志

摘要:本文介绍了使用ELK堆栈(Elasticsearch、Logstash、Kibana)和Filebeat收集Spring Boot日志的完整流程。首先安装配置Elasticsearch作为数据存储,然后可选配置Logstash进行日志预处理,接着通过Filebeat采集日志文件并发送至Elasticsearch,最后安装Kibana进行日志可视化和分析。文章详细说明了每个组件的安装步骤和配置文件设置,包括索引模式的创建,帮助开发者快速搭建日志收集系统。

2025-06-24 17:17:08 1014

原创 MySQL联表查询:多表关联与嵌套查询指南

MySQL复杂查询高级指南 本文系统讲解了MySQL复杂查询的核心技术,包括: 多表连接(INNER JOIN/LEFT JOIN等)及其应用场景 各类子查询(标量、列、行、表)的使用方法 联合查询(UNION/UNION ALL)的区别与适用场景 临时表与派生表的使用技巧 综合实战案例演示复杂查询应用 掌握这些高级查询技术,能够有效处理真实业务中的多表数据关联、复杂数据筛选和结果集合并等需求,提升数据库操作效率和分析能力。文章还提供了性能优化建议和下一步学习方向。

2025-06-21 15:52:11 48

原创 解决mysql左连接加where就不会保留左表中的全部数据的问题

摘要:在MySQL中使用LEFT JOIN时,WHERE条件若包含右表字段会使LEFT JOIN变成INNER JOIN,导致左表记录丢失。正确做法是将关联条件放在ON子句中,WHERE仅过滤左表数据。若需用右表字段过滤,应将其移入ON子句(如:ON a.id=b.a_id AND b.column='value'),这样既能保留左表所有记录,又能实现条件筛选。关键点在于区分JOIN条件和最终过滤条件的位置。

2025-06-21 12:00:57 190

原创 在Spring Boot项目中实现用户查询数据权限控制

本文介绍了在Spring Boot项目中实现用户查询数据权限控制的系统方案。通过权限元数据建模建立数据权限规则表,结合MyBatis拦截器动态改写SQL语句。方案包含规则引擎解析器、AOP权限校验增强、多租户隔离等核心模块,并提供了缓存优化和实施建议。该设计采用分层架构,从基础数据模型到上层应用拦截,实现了灵活、安全的权限控制,同时保持系统性能稳定。实施路径建议分阶段推进,并强调了防御性编程和安全审计的重要性。

2025-06-19 10:38:09 446

原创 SqlSession [xxx] was not registered for synchronization because synchronization is not active

数据库更新操作出现异常:MyBatis创建了新的SqlSession但未进行事务同步管理,同时检测到更新SQL语句缺少必要的ID参数。日志显示HikariCP连接池初始化成功,但JDBC连接未被Spring托管。错误源于更新操作未传入ID参数导致执行失败,系统随后关闭了非事务性的SqlSession。建议检查代码确保更新操作传入完整参数并配置正确的事务管理。

2025-06-19 10:34:08 94

转载 处理kkFileView的com.aspose:aspose-cad:iar:23.9 not found 问题

摘要:针对aspose-cad-23.9.jar依赖无法自动下载的问题,本文提供了Windows环境下的手动安装方案。首先需要安装Maven并配置环境变量,然后下载jar包到本地目录。通过执行mvn install命令将jar包安装到本地仓库,最后在pom文件中添加依赖配置即可。该方法适用于解决Maven无法自动下载特定jar包的问题,确保项目能够正常编译打包。

2025-06-15 15:00:56 305 2

原创 MinIO 用户谨慎更新:11万行代码被官方删除,Web 管理功能全没了(附旧版本下载)

​MinIO 是著名的开源对象存储服务器软件,诞生自 2016 年,兼容 Amazon S3 API,是非常流行的网络基础服务,小众软件的图片服务器也通过 MinIO 来管理。其社区版本在上个月初,有一次更新:《Implemented AGPL MinIO Object Browser simplified Console #3509》,以简化控制台为由,一次性删除了 11 万行代码,移除了 Web UI 中的:账户和策略管理、配置管理、存储桶管理工具、管理控制台功能。

2025-06-05 09:17:48 1101

转载 @FeignClient 添加请求头header的4种方法

本文介绍了在Feign客户端中添加请求头的两种方式:单个请求和全局配置。单个请求可通过三种方法实现:1)在@RequestMapping注解的headers属性中直接设置;2)使用@RequestHeader注解动态传递请求头;3)通过@Headers注解静态设置请求头。全局配置则需实现RequestInterceptor接口,在apply方法中统一添加请求头。文中还展示了如何从当前请求中获取并转发Authorization和proxyHost等头信息。这些方法为Feign客户端请求提供了灵活的请求头管理方

2025-06-04 15:30:33 740

原创 minio官方文档

MinIO提供高性能开源对象存储解决方案,支持Windows和Linux系统。Windows用户可使用MinIO Object Storage for Windows,Linux用户则对应MinIO Object Storage for Linux版本。所有版本均可通过官方渠道下载,作为开源对象存储方案,MinIO适用于各类云原生应用和数据管理需求。下载地址:OpenSource Object Storage Download | MinIO。

2025-06-03 09:04:41 245

原创 解决jenkins使用publish over ssh在远程机器上执行git命令和mvn命令不成功、不执行、失败等问题,bash: mvn: command not found

文章摘要:在使用Jenkins的PublishOverSSH插件进行跨服务器部署时,由于服务器A(JDK11)和B(JDK8)的JDK版本差异,直接在服务器B执行Maven打包可避免兼容问题。测试发现远程执行git和mvn命令失败,改用全路径命令后命令能执行但未生成jar包。最终通过在shell命令中添加JDK和Maven环境变量解决了打包问题,确保部署流程正常完成。

2025-05-29 17:43:28 466

原创 java jar 默认jvm参数 java -jar 默认内存

Java应用启动时JVM会使用默认参数,包括堆内存分配(-Xms为物理内存1/64,-Xmx为1/4)、垃圾回收器等,但这些参数会随JDK版本变化。可通过命令查看默认设置,建议显式设置关键参数(如-Xms、-Xmx)以确保性能稳定。堆内存分配策略会根据使用率自动调整,32位系统存在2-3GB内存限制。若参数设置不当(如Xms>Xmx)或总内存超限会导致启动失败。对于大型应用或第三方jar较多的情况,需特别设置-XX:MaxPermSize等参数。

2025-05-28 18:02:53 969

原创 jenkins报错java.lang.OutOfMemoryError: Java heap space

摘要:Jenkins系统出现Java堆内存不足错误(OutOfMemoryError),报错发生在JSON数据处理过程中。错误追踪显示问题源于处理JSON对象时堆空间耗尽。解决方案是通过调整JVM参数增加内存分配,建议在启动Jenkins时添加"-Xmx1024m -Xms1024m"参数来将初始堆内存和最大堆内存均设为1024MB。该错误表明当前配置的内存不足以支持系统运行的JSON处理需求,扩大堆内存可有效解决此问题。(149字)

2025-05-28 11:56:55 591

原创 使用swagger时出现Unable to infer base url. This is common when using dynamic servlet registra

摘要:Swagger访问报错问题排查指南。主要原因是未启用Swagger2或配置不当。解决方案:1) 确保启动类添加@EnableSwagger2注解;2) 创建Swagger配置类,指定正确的Controller扫描路径;3) 若配置类不在启动类同级/子级包,需在启动类添加@ComponentScan指定路径;4) 检查pom.xml是否正确引入Swagger依赖;5) 清理target目录后重启IDEA。注意保持包路径一致性,避免覆盖默认扫描范围。该方案成功解决了Swagger无法识别Controlle

2025-05-28 11:25:53 864

原创 springboot项目启动报错:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

【摘要】出现java.sql.SQLNonTransientConnectionException异常,提示PublicKeyRetrieval不被允许。错误源于MySQL连接过程中密码验证失败,堆栈信息显示从Hikari连接池到JDBC驱动的多层调用均出现异常。解决方法为检查并修正数据库连接密码,若遗忘密码需重置数据库密码,确保配置文件中填写正确的数据库认证信息。该问题常见于密码错误或安全策略限制的场景。

2025-05-28 10:51:34 110

转载 MySQL中变量的定义和变量的赋值使用

MySQL存储过程变量分为局部变量、用户变量和系统变量三种。局部变量用DECLARE定义,作用域仅限于BEGIN/END块;用户变量以@开头,无需声明,作用域为整个会话;系统变量分为全局变量和会话变量,通过SET命令设置。全局变量影响服务器整体运行,需SUPER权限修改;会话变量仅影响当前连接。这三种变量在作用域、声明方式和生命周期上各有特点:局部变量随代码块结束消失,用户变量随连接断开消失,全局变量需要配置文件才能持久化。正确使用这些变量对存储过程开发至关重要。

2025-05-26 11:21:03 241

转载 为什么FeignClient不能传送POJO父类中的字段?

本文分析FeignClient调用表单提交服务时,继承父类字段无法传递的问题。当ContentType为application/x-www-form-urlencoded时,Feign通过PojoUtil.toMap方法反射解析POJO字段,但该方法使用getDeclaredFields()仅获取当前类字段,导致父类字段丢失。解决方案是避免在表单请求中使用继承的POJO类,直接定义完整字段结构。该问题源于Feign内部实现机制,开发者需注意表单请求参数类的设计规范。

2025-05-24 09:49:04 45

原创 Centos7安装配置Node22+版本后执行node -v 命令报错

在开发智能体平台MCP的过程中,遇到了在服务器上安装Node.js 20+版本的问题,由于CentOS 7的内置库与高版本Node.js不兼容,导致了一系列编译和依赖错误。为了解决这些问题,作者通过升级GCC、Make工具链,更新libstdc++.so.6和glibc库,最终成功在服务器上安装了Node.js 20.19.1版本。此外,作者还分享了如何设置软连接和更改npm镜像源,以便更高效地进行开发和部署。这一过程不仅解决了技术难题,也展示了面对复杂问题时的解决思路和方法。

2025-05-17 10:37:19 828

原创 shell比较两个字符串是否相等

在Unix Shell中比较两个字符串是否相等时,通常使用单个等号(=),并且等号两边需要各有一个空格。为了防止变量为空时表达式报错,可以在变量后添加一个非空字符(如x),这样即使变量为空,表达式也不会出错。此外,Shell中还有多种比较操作符,如-eq(等于)、-ne(不等于)、-gt(大于)、-ge(大于等于)、-lt(小于)、-le(小于等于)等,用于整数比较。对于字符串比较,可以使用=或==,但要注意在[[]]和[]中==的行为不同。在[[]]中,==支持模式匹配,而在[]中则进行字符匹配。

2025-05-16 17:10:04 557

面试宝典之应对HR30问,满满的干货

面试宝典之应对HR30问,满满的干货

2022-02-11

java面试问题-spring框架相关.docx

java面试问题-spring框架相关.docx

2022-02-11

spring常见面试题.docx

应届生、程序员面试宝典

2022-02-11

java面试问题-java基础相关.docx

java面试问题-java基础相关.docx

2022-02-11

redis配置文件redis.conf

redis配置文件redis.conf

2024-05-30

java面试总结pdf版

应届生程序员、java基础的法宝

2022-02-11

空空如也

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

TA关注的人

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