Spring Gateway集成 Nacos注册中心不能够发现服务的解决方案
目录一、问题描述二、问题分析一、问题描述
我们现在是在用Nacos替换Eureka,原来Eureka和Spring gateway运行正常,可以通过Spring gateway调用注册到Eureka中的服务。
当前Spring cloud的版本是Hoxton.SR8,Nacos discovery的版本为0.9.0.RELEASE,使用的Nacos版本为2.0.3。
Nacos替换Eureka改动的地方如下:
1、去掉POM ...
Java出现:JWT strings must contain exactly 2 period characters. Found: 0的常见原因及解决方案
目录一、先理解JWT的标准结构二、错误的常见原因(按优先级排查)1. 传入的令牌为空/空白字符串2. 令牌被截断/拼接错误3. 令牌格式错误(非JWT)4. 令牌被篡改/手动修改三、通用解决方案(解析前增加校验)四、额外注意点快速定位技巧这个错误的核心是:你传入的JWT令牌字符串没有包含必需的2个英文句点(.),导致JWT解析 ...
Java锁机制的使用与实战分析
目录引言一、synchronized关键字二、内置锁(Intrinsic Locks or Monitor Locks)三、显示锁(Lock)四、读写锁(Read-Write Locks)五、条件变量(Condition Objects)六、乐观锁(Optimistic Locking)七、悲观锁(Pessimistic Locking)八、自旋锁(Spin Locks)九、StampedLock总结引言
在多线程编程中,确保数据的并发 ...
JAVA类之间方法的调用问题小结
目录一、静态方法调用其他方法:1. 静态方法调用非静态方法2.静态方法调用静态方法二、非静态方法调用其他方法1.非静态方法在同一类内调用其他方法2.非静态方法在不同类之间调用其他方法注:调用方法——调用另一方法的方法被调用方法——被调用的方法
一、静态方法调用其他方法:
1. 静态方法调用非静 ...
Java开发第一个RESTful接口完全攻略
目录一、理解 RESTful 架构二、Java 开发 RESTful 接口的工具栈三、开发第一个 RESTful 接口四、进阶技术与实践五、部署与监控六、总结一、理解 RESTful 架构
核心概念:
REST (Representational State Transfer): 一种软件架构风格,基于 HTTP 协议。资源 (Resource): 网络上的一个实体或信息,如用户、订单、商品等。URI ...
springboot项目如何按天分割日志
目录引言一、Spring Boot日志体系概述二、按天分割日志原理与配置日志滚动策略配置示例三、高级配置与优化四、实践中的注意事项总结引言
在大型分布式系统中,日志作为系统运行状态的重要记录,其管理与分析对于故障排查、性能监控和业务洞察具有至关重要的作用。
为了保证日志数据的有效组织与存储,按天分割日志成为一种 ...
Java从配置文件中获取参数的三种常见场景和完整示例
目录引言一、场景 1:原生 Java + properties 配置文件(无框架)1. 配置文件准备2. 代码实现(原生 Properties 类)3. 核心说明二、场景 2:Spring Boot + application.properties(最常用)1. 配置文件准备2. 代码实现(3 种方式)方式 1:@Value 注解(直接注入,最简单)方式 2:Environment 接口(动态获取,适合多环 ...
Java中的Switch Case语句及示例详解
Java中的Switch Case语句及其示例
当我们有许多选项(或多个选项),并且我们可能需要为每个选项执行不同的任务时,会使用Switch case语句。
Switch case语句的语法如下所示——
switch (variable or an integer expression)
{
case constant:
//Java code
;
case constant:
//Java cod ...
MyBatis使用logback包打印SQL语句实践
目录1、引入依赖2、新建配置文件效果图修正总结完整打印出sql语句。
新建 maven 项目,使用pom.xml管理依赖。
1、引入依赖
<dependencies>
<!-- mybatis 3 的依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3. ...
Java中把一个文件夹下的所有文件复制到另一个文件夹的完整实现方案
目录一、核心实现思路二、完整可运行代码三、关键细节说明四、拓展:Java 7+ Files工具类实现(更简洁)总结在Java中把一个文件夹下的所有文件复制到另一个文件夹(支持多级目录、空文件夹、文件覆盖等场景),以下是基于Java原生API的完整实现方案(兼容Java 8+,无需额外依赖):
一、核心实现思路
校验源文件夹:确保源 ...
Java使用net.lingala.zip4j导出压缩包文件的详细步骤
目录一、先确认依赖(Maven/Gradle)二、完整实现代码三、zip4j 1.x 核心配置说明(区别于2.x)四、关键问题解决1. AES-256 加密权限问题(JDK8及以下)2. 中文文件名乱码3. 文件夹删除失败4. 压缩包覆盖问题五、使用注意以下是基于 zip4j 1.x 版本实现「加密压缩指定文件夹 + 压缩后删除原文件夹」的完整代码,兼容旧版依 ...
Spring Boot 全局异常处理策略设计之@ExceptionHandler 与 @ControllerAdvice 生效原理源码解析
目录Spring Boot 全局异常处理策略设计(三):@ExceptionHandler 与 @ControllerAdvice 生效原理源码解析1. 从一个常见疑问说起2. ExceptionHandlerExceptionResolver 是谁在干活3. ExceptionHandlerExceptionResolver 的核心职责4. @ExceptionHandler 方法是如何被扫描的4.1 初始化阶段:扫描所有异常处理方法4.2 扫描 @C ...
Springboot+Mybatis+logback打印sql脚本日志实现过程
目录控制台打印日志文件打印总结之前为了在日志文件中打印sql脚本日志试了好多种方法,麻烦的简单的都试过但是都没有效果,在无意中学到了这种简单的方式,亲测有效。
控制台打印
在application.yml配置文件添加内容
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
日志文件 ...
SpringBoot Validation不生效问题及解决方案
目录确认maven依赖查看依赖关系并处理验证:校验生效,成功总结能问出这个问题说明你已经使用了@Null、@NotEmpty等等等校验注解,但是没有生效,我也出现过这种情况,请看我修复的方式,可能你缺少了哪一步。
确认maven依赖
随便查看某个校验注解(如:@NotNull)是引入的哪个依赖:
根据IDEA的已有工具查看项目的完整依赖: ...
SpringBoot同时接收文件以及json参数实现方式
目录前端传参后端接收注意总结前端传参
let upData = new FormData();
// 将文件列表赋值给files参数
this.files.forEach(function (file) {
upData.append("files", file);
});
this.firmwareSaveDto = this.formData;
let commodityDto = JSON.stringify(this.firmwareSaveDto);
// 将json对象赋值给save ...
Spring Validation的校验顺序问题及解决过程
目录问题场景原理剖析解决方法创建五个接口修改Controller控制层代码修改实体类代码整改结果后续问题问题原因解决方案总结问题场景
测试发现对同一个接口调用多次时,返回的校验异常信息不同,经过问题追踪,入参实体类代码如下:
@Data
public class EditDevNameDto {
@NotBlank(message = "deviceSn must not null")
...
AOP在SpringBoot项目中的使用场景解读
目录添加DTO添加controller(同包不同类)控制器1控制器2AOP场景演示1. 对某package下的所有接口进行方法执行前逻辑校验新增切面,编写处理逻辑2. 对某controller类下的所有接口进行方法执行前逻辑校验新增切面,编写处理逻辑3. 对某注解修饰的所有接口进行方法执行前逻辑校验自定义注解在控制器1 test 方法前修饰自定义注解 ...
数据结构-图
概述
图是一种较为复杂的非线性结构。 为啥说其较为复杂呢?
根据前面的内容,我们知道:
线性数据结构的元素满足唯一的线性关系,每个元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继。
树形数据结构的元素之间有着明显的层次关系。
但是,图形结构的元素之间的关系是任意的。
何为图呢? 简单来说,图就是由 ...
Java通过value获取Map中key的三种实现过程
目录简介方法描述循环法Stream方法Apache Commons Collections的BidiMap总结简介
我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值。然而,有的时候我们需要反过来获取,知道Value值,求Key值。
本文将用实例介绍三种方法,通过传入Value值,获取得到Key值。
方法描述
循 ...
Java导致内存泄漏的多种情况分析
目录1、生命周期长的集合2、未关闭的资源3、ThreadLocal 使用不当4、内部类与外部类引用5、 监听器与回调今天我们来一起聊一聊有哪些情况会导致内存泄漏。
什么是 内存泄漏 呢?
内存泄漏 是指对象 已经不再被程序使用,但因为某些原因 无法被垃圾回收器回收,长期占用内存,最终可能引发&nb ...