SpringBoot
文章平均质量分 74
No8g攻城狮
》博主介绍:全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域
》技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。
》感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。
展开
-
【Spring Cloud】使用 spring-boot-devtools 进行热部署
其深层原理是使用了两个 ClassLoader,一个 ClassLoader 加载那些不会改变的类(例如第三方的 Jar 包依赖),另一个 ClassLoader 加载会更改的类,称为 Restart ClassLoader。这样在有代码更改的时候,原来的 Restart ClassLoader 被丢弃,重新创建一个 Restart ClassLoader 加载更新的类,由于所需要加载的类相对而言比较少,所以实现了较快的重启。在项目的pom文件中添加 spring-boot-devtools 的依赖配置。原创 2024-07-02 09:40:50 · 394 阅读 · 8 评论 -
【异常解决】SpringBoot + Maven 在 idea 下启动报错 Unable to start embedded Tomcat(已解决)
spring boot(v2.5.14) + maven + idea 启动项目之前项目一直启动的好好的,都能正常运行。重启的时候突然就不能启动了。原创 2023-12-12 23:00:00 · 3092 阅读 · 16 评论 -
【Java用法】Hutool树结构工具-TreeUtil快速构建树形结构的两种方式 + 数据排序
考虑到菜单等需求的普遍性,有用户提交了一个扩展性极好的树状结构实现。这种树状结构可以根据配置文件灵活的定义节点之间的关系,也能很好的兼容关系数据库中数据。实现 关系型数据库数据 Tree JSON 树状结构中最大的问题就是关系问题,在数据库中,每条数据通过某个字段关联自己的父节点,每个业务中这个字段的名字都不同,如何解决这个问题呢?PR的提供者提供了一种解决思路:自定义字段名,节点不再是一个bean,而是一个map,实现灵活的字段名定义。原创 2023-12-08 22:15:00 · 10956 阅读 · 17 评论 -
【SpringBoot】解析Springboot事件机制,事件发布和监听
事件类需要继承 ApplicationEvent 类示例:定义一个报警事件,属性是报警实体类,也可以是其他字段或者实体根据业务自定义import org/*** 定义一个报警事件,属性是报警实体类} }/*** 定义一个报警事件,属性是报警实体类} }/*** 定义一个报警事件,属性是报警实体类*/事件监听类,实现 ApplicationListener 接口,泛型是import com。原创 2023-12-06 20:23:21 · 1384 阅读 · 12 评论 -
【异常解决】org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character
在Springboot项目中,可以使用 Maven 的资源过滤(resource filter)自动暴露来自 Maven 项目的属性,如果使用spring-boot-starter-parent 作为项目的父工程的话,我们可以通过@…@占位符引用Maven项目的属性。在代码中使用 @Value注解获取它的值(从 maven 的 pom.xml 配置中获取),然后在接口中返回给前端即可。在 Maven pom.xml 中添加如下信息即可。项目需求:在浏览器上显示系统项目的版本号;【注意:是@@,不是${}】原创 2023-08-01 08:59:04 · 1262 阅读 · 31 评论 -
【异常解决】缓存报错:Null key returned for cache operation (maybe you are using named params on classes withou
注解中key的值即id值为null,即该方法的入参 id 为空,在调用方法时,不能传null值,传入 null 值的话就会报上述错误。项目中有一个方法:根据设备id查询设备详情,它是一个非常高频使用的函数。为了减轻对数据库的压力,自然而然的就想到了使用缓存的技术。在调用该方法的时候先判断id是否为空,id不为空时再调用该方法即可。原创 2023-07-28 14:10:16 · 5546 阅读 · 16 评论 -
【Linux】linux下使用命令修改jar包内某一个文件中的内容并重新运行jar程序
需求:发现线上的 iotp-irsb-server-v1.0.0.2.jar 包中配置文件的日志级别配置错误,需要在线修改jar包中文件的application-prod.yml的日志级别配置,修改完成后并重启该jar包。grep命令是查找,中间的|是管道命令 是指ps命令与grep同时执行。进入到该jar包所在的目录,使用 vi 命令打开 jar 包内文件列表。此时程序还正在运行,正常情况下需要先杀掉进程,然后再使用命令启动即可。这条命令的意思是显示所有java的进程。-A:显示所有程序。原创 2023-06-13 12:30:31 · 4610 阅读 · 10 评论 -
【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密
Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持,出于安全考虑,Spring boot 配置文件中的敏感信息通常需要对它进行加密/脱敏处理,尽量不使用明文,要实现这一点,办法有很多,自己手动对敏感信息进行加解密也是可以的。原创 2023-05-08 22:15:00 · 7844 阅读 · 14 评论 -
【异常解决】Java运行时发生 java.lang.NoClassDefFoundError: Could not initialize class com.iot.alarm.ProcAlar
是由于 JVM 或 ClassLoader 实例为了调用某个类的方法或 new 类的新的实例,而试图加载该类的定义时,却无法找到其定义,而抛出的异常。需要注意,对于抛出该异常的情况,试图找到的类的定义在编译时存在,只是在运行时不知所踪。实例导致的,那么我们就可以从类中找出与它有关的代码然后修改掉即可。对于我来说,这段代码我先注释掉了,不影响业务,或者是写出能代替的方案即可。或者如果是缺少类,则把缺少的类添加上即可。Springboot + JDK1.8,程序正常编译通过,运行时调用某个类后抛出异常。原创 2023-04-29 11:45:00 · 22505 阅读 · 24 评论 -
【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案
拿我自己初始化的这个SpringBoot项目来说,我选择的SpringBoot版本3.0.5,该版本的SpringBoot所需的JDK版本是JDK17,而我本地电脑只安装了一个JDK8的运行环境,所以才会报这个错误。报错信息里所说的类文件版本指的是java class file version,java类文件版本。其实这个该版本号与jdk版本号是存在对应关系,具体来说61.0对应jdk17,52.0对应jdk8。理论上来说,从Spring官网初始化的一个项目,没有添加任何代码,不应该报错。原创 2023-03-28 21:45:00 · 15467 阅读 · 49 评论 -
【MapStruct】引入MapStruct之后,项目启动java:找不到符号
SpringBoot项目,在引入MapStruct之前项目启动和运行的好好的,按照MapStruct官网推荐的方法引入MapStruct之后,本来正常的项目居然启动不了了。按照MapStruct官网推荐的方法引入MapStruct之后,本来正常的项目居然启动不了了。注意项目有隐形报错也可能会导致报mapstruct mapper的错误。在build-plugins-plugin中加入。java:找不到符号。原创 2023-03-07 19:44:19 · 1596 阅读 · 28 评论 -
【SpringBoot】SpringBoot常用注解
首先这里说的SpringBoot常用注解是指在我们开发项目过程中,我们经常使用的注解,包含Spring、SpringBoot、SpringCloud、SpringMVC等这些框架中的注解,而不仅仅是SpringBoot中的注解。这里只是作一个注解列举,每个注解具体如何使用可以自行搜索查询哈。原创 2023-02-11 15:25:45 · 4046 阅读 · 25 评论 -
【SpringBoot】简述springboot项目启动数据加载内存中的三种方法
SpringBoot提供了两个接口:CommandLineRunner 和 ApplicationRunner。实现其中接口,就可以在工程启动时将数据库中的数据加载到内存。使用的场景有:加载配置项到内存中;启动时将字典或白名单数据加载到内存(或缓存到 Redis 中)。原创 2023-02-10 17:12:26 · 2579 阅读 · 16 评论 -
【微服务】微服务常用组件汇总
Spring Cloud Gateway 是Spring Cloud 的一个全新的API网关项目,目的是为了替换掉Zuul1,它基于Spring5.0 + SpringBoot2.0 + WebFlux(基于⾼性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型)等技术开发,性能⾼于Zuul,官⽅测试,Spring Cloud GateWay是Zuul的1.6倍,旨在为微服务架构提供⼀种简单有效的统⼀的API路由管理⽅式。Consul提供服务发现、基于身份的授权、L7流量管理和服务对服务加密。原创 2022-10-22 22:53:42 · 6406 阅读 · 6 评论 -
【异常】because it is a JDK dynamic proxy that implements
此方案主要是针对原因一导致的问题而使用的解决方法,我项目里的解决方法就是使用方案一搞定的。的代理还是基于类的动态代理的配置,这种错误提示需要设置基于类的代理才行。,而由于需求的原因,又自定义了一个。注解,由于项目中已经有另外一个。接口还是基于类的代理被创建。的数据库时),然后如果使用。”,也可能出现这个错误。原创 2022-09-16 18:35:49 · 4327 阅读 · 6 评论 -
【异常】Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlType
报错信息:Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlType。使用Idea打开一个新的项目之后,maven配置的没有问题,所有依赖都正常,运行项目之后报错。如果你在项目中使用高于 Java 8 的版本,那么就需要引入下面依赖即可解决。以及上版本中引入了模块的概念,默认情况下,导入一个新的项目后,默认使用了较高版本的。所以启动项目的时候使用的是。及以上版本中不再包含这个。,想要继续使用高版本的。原创 2022-09-15 16:00:50 · 5184 阅读 · 9 评论 -
【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
但是不推荐自己去写,因为这个不是什么重要的功能,没必要把时间花在这上面,既然 SpringBoot 提供了这个功能,肯定为我们实现了。如果没有配置 banner.image.location,转而依次加载 banner.gif、banner.jpg、 banner.png 这三个中存在的文件(我们可以从源码中查看这三种格式的图片);图片格式,SpringBoot 加载配置项 banner.image.location,从配置项中获取真实的路径,SpringBoot 会根据配置项的路径加载文件。...原创 2022-08-26 17:42:09 · 2336 阅读 · 12 评论 -
【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
本文目录一、J2Cache简介二、数据读取三、使用方法及实际示例3.1 引用 Maven3.2 准备配置J2Cache 使用Ceffien作为一级缓存,使用Redis作为二级缓存时的配置3.3 编写代码3.3.1 Demo示例3.3.2 实际案例四、常见问题4.1 J2Cache 的使用场景是什么?4.2 为什么不能在程序中设置缓存的有效期4.3 如何使用 memcached 作为二级缓存4.4 使用何种 Redis 的存储模式最佳? generic原创 2022-05-18 14:58:42 · 3193 阅读 · 2 评论 -
【异常】记录“错误: 找不到或无法加载主类 com.iotsoft.back.iotauthority.ApplicationRun”的解决方案
本文目录一、背景描述二、报错原因三、解决方案方案一:把中文目录改成英文即可方案二:maven --> install一、背景描述今天从 Git 上新 checkout 下来一个项目,运行居然报错。由于代码是别人开发的,我刚接手,于是在本地 G 盘上新创建了一个文件夹,目录名称为 “G:\新透传网关\7代码\back-iot-authority”,把 Git 上 checkout 下来的项目放入了这个目录,运行后,报错:错误: 找不到或无法加载主类 com.uiotsoft.原创 2022-03-30 16:53:35 · 1284 阅读 · 6 评论 -
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案原创 2021-12-07 20:35:14 · 5236 阅读 · 8 评论 -
【Java用法】Paths.get()方法的使用
Paths.get()方法的使用原创 2021-12-06 10:40:59 · 18169 阅读 · 8 评论 -
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
mybatisplus更新时,实体字段为空,数据库不更新的解决方案原创 2021-12-02 20:11:37 · 6951 阅读 · 8 评论 -
【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法包含熔断器(Hystrix)
FeignClient客户端、Feign、Spring Cloud、微服务之间的调用原创 2021-11-19 19:41:48 · 4223 阅读 · 5 评论 -
【Springboot】springboot 多线程@EnableAsync和@Async
本文目录一、背景描述二、使用方法第一步:配置线程池第二步:开启异步调用第三步:异步调用三、代码测试一、背景描述众所周知,java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创建一个新线程去执行,即使用多线程技术,比如显式的 new Thread(),或者线程池 ThreadPoolExecutor。在 Springboot 中对其进行了简化处理,只需要配置一个类型为 java.util.concurrent.TaskExecutor或其子类的 bean..原创 2021-08-10 17:33:42 · 671 阅读 · 6 评论 -
【Java】Springboot整合多数据源配置
主要介绍两种整合方式,分别是 springboot+mybatis 使用分包方式整合,和 springboot+druid+mybatisplus 使用注解方式整合。https://www.cnblogs.com/nxzblogs/p/11849797.html原创 2021-08-05 18:05:12 · 3196 阅读 · 22 评论 -
Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerExcepti
本文目录一、背景描述二、原因分析三、解决方案一、背景描述项目架构:Spring Boot (v2.0.0.RELEASE) + Mybatis-Plus (v3.1.1)今天在一个老项目(运行的非常正常)上开发一个新的功能,添加新功能之前,项目启动、运行很正常,结果开发完之后,项目启动不了了,后台也不报任何错误信息,关键是连日志都没有,一时间竟这让我无从下手啊。二、原因分析根据情况分析得出,项目是无法启动,想着肯定是启动哪里会有问题,然后就是启动类里启动项目那一行(也就是以下原创 2021-06-29 09:49:04 · 61075 阅读 · 12 评论 -
【Spring Boot】使用Feign作为HTTP客户端调用远程HTTP服务
本文目录一、背景简介二、调用方(项目A)第一步:添加Maven依赖第二步:添加@EnableFeignClients注解第三步:创建FeignClient接口第四步:调用方使用三、调用方(项目B)第一步:添加Maven依赖第二步:添加@EnableFeignClients注解第三步:创建Controller控制层一、背景简介最近做的一个公司项目,由于功能需求,需要在两个springboot项目间的进行远程调用,我使用的是通过Feign的方式。而springboot本身封装了两种方法HTTP调用方式:原创 2021-04-30 11:31:45 · 1946 阅读 · 6 评论 -
【Springboot】springboot项目替换掉默认的小叶子ico
只需简单的两步即可:第一步:把自己的图标命名为【favicon.ico】;第二步:在src/main/resources下的static文件夹中放入新的ico即可自动替换;至此已替换完成,如果重启项目之后没有生效,请按以下方式进行查找原因:图标名字写错;清空浏览器缓存;需要注意的是如果使用了WebMvcConfigurer(或者相同功能的拦截器)的话,需要加上**.ico以防止拦截器拦截ico文件的访问。registry.addInterceptor(authInterceptor()原创 2021-04-28 11:43:15 · 593 阅读 · 7 评论 -
MybatisPlusException: Your property named “xxx“ cannot find the corresponding database column name!
一、背景描述最近新创建一个Spring boot (v2.0.0.RELEASE) + mybatis plus (3.1.1 RELEASE)项目,在测试接口时,IDEA控制台居然报错,报错信息:在实现类ServiceImpl中的代码如下:每次调用此接口时(或者使用相同方式写的代码都会出现,CRUD操作都一样出现),详细的报错信息,我放到文章的最后,有兴趣的可以查看。二、错误原因针对3.1.1以及后面的版本:现象: 单元测试没问题,启动服务器进行调试就出现这个问题..原创 2021-04-12 20:29:40 · 2419 阅读 · 8 评论 -
【Java】Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
本文目录一、启动类忘记添加注解二、缺少依赖,添加即可三、启动类main方法写错在Spring Boot项目中,出现这个错误有几种情况:一、启动类忘记添加注解在main方法所在的类忘记添加@SpringBootApplication;二、缺少依赖,添加即可<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot原创 2021-02-03 11:22:12 · 43106 阅读 · 22 评论 -
【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法
本文目录一、背景描述二、配置方法2.1 添加maven依赖2.2 添加@EnableFeignClients注解2.3 配置文件application.properties中添加路径2.4 服务A中添加服务B的接口2.5 调用此接口在最近做的项目中,由于之前做的各个服务都是相互独立的,但是业务要求调用其他已做好的服务的功能,于是就有了正在做的项目调用已经上线的服务的需求。一、背景描述公司网站(服务A)改版升级中,由于需要调用商品中心(服务B)的接口,查询出公司的所有产原创 2020-09-22 13:16:54 · 5960 阅读 · 2 评论 -
【Java异常】Spring boot启动失败@org.springframework.beans.factory.annotation.Autowired(required=true)
本文目录一、背景描述二、报错信息三、错误原因四、解决方案4.1 方案一:扩大注解 @EnableFeignClients扫描的包的范围4.2 方案二:在注解@EnableFeignClients指定clients一、背景描述微服务项目,spring boot (v2.1.5.RELEASE) ,今天在ServiceA微服务里添加一个功能,通过FeignClient调用ServiceB的接口。在本项目里通过@Autowired自动注入方式注入客户端接口@Autowir原创 2020-06-17 18:12:14 · 8459 阅读 · 2 评论 -
【Java异常】Spring Boot出现警告 WARNING: An illegal reflective access operation has occurred
本文目录一、背景描述二、报错信息三、报错原因四、解决方案4.1 方案1:添加jvm option配置信息4.2 方案2:降低jdk版本一、背景描述公司的项目最近在做微服务改造,每块业务单独建一个服务,服务与服务之间相互调用。项目背景:JDK(9)+ Spring Boot(v2.1.5.RELEASE)二、报错信息如下图所示,虽说不影响运行吧,但是有了这报警信息总感觉很碍眼,所以还是把这个问题解决心理才好。WARNING: An illegal refl原创 2020-06-11 11:22:37 · 23334 阅读 · 26 评论 -
【Java异常】Caused by: java.lang.IllegalArgumentException: method GET must not have a request body
本文目录一、背景描述二、出错的代码三、出错原因四、解决方案4.1 方案1:POST请求 + 注解4.2 方案2:GET请求 + @SpringQueryMap注解一、背景描述公司做的智能家居系统改为微服务框架,各个微服务之前相互调用。今天在做测试的时候后台系统报了一个Caused by: java.lang.IllegalArgumentException: method GET must not have a request body错误,然后检查了请求链路从前到后一路原创 2020-06-09 18:03:31 · 21676 阅读 · 5 评论 -
【Java异常】org.springframework.beans.factory.UnsatisfiedDependencyException:FeignClient注解及参数问题
本文目录一、背景描述二、错误信息三、出错原因四、解决方案一、背景描述在用分布式架构SpringBoot的SpringCloud技术开发过程中,FeignClient 是一个常用的注解,且很重要的功能。简单理解就是,分布式架构服务之间,各子模块系统内部通信的核心。一般在一个系统调用另一个系统的接口时使用,注解如下:@FeignClient(contextId = "hostControlClient", value = SystemConstant.APPLICATION_N原创 2020-05-13 16:09:04 · 1218 阅读 · 1 评论 -
【Java异常】Spring boot 项目启动报错 Failed to configure a Datasource:‘url‘ attribute is not specified.....
本文目录一、现象描述二、问题原因2.1 原因分析2.2 问题排查三、解决方案3.1 方案一3.2 方案二3.3 方案三3.4 方案四一、现象描述最近在写一个微服务项目,此项目需要调用其他服务提供的接口,很多接口只需要透传即可,并不需要写业务逻辑之类的,也不需要与数据库打交道,所以并不用配置数据库连接池等信息。但是Spring boot项目启动却报如下错误...原创 2020-05-05 18:23:59 · 1208 阅读 · 1 评论 -
【Java异常】Consider renaming one of the beans or enabling overriding by setting spring.main
本文目录一、项目背景二、问题描述三、问题原因四、解决方案方案1:重新命名方案2:修改配置文件一、项目背景今天配置了一个springboot项目,使用swagger2进行前后端分离开发。配置了swagger后竟然发现启动失败。springboot (v2.1.8.RELEASE) + swagger (v2.8.0)二、问题描述************...原创 2020-04-26 17:09:51 · 54358 阅读 · 5 评论 -
【Java异常】com.netflix.hystrix.exception.HystrixRuntimeException: 类名#方法名failed and no fallback availabl
本文目录一、问题描述二、问题原因三、报错信息一、问题描述com.netflix.hystrix.exception.HystrixRuntimeException: MessageTemplateClient#getTemplate(Integer) failed and no fallback available.二、问题原因出现这个问题的时候,一般是A服务调用B服务...原创 2020-04-24 12:28:48 · 3514 阅读 · 1 评论 -
【Java异常】com.netflix.client.ClientException: Load balancer does not have available server for client
本文目录一、问题描述二、错误原因三、解决方案方案1方案2一、问题描述报错信息如下Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: basic-iot-config at com.netflix.loadba...原创 2020-04-23 19:58:46 · 104794 阅读 · 42 评论 -
【Java用法】@RequestParam、@RequestBody、@ResponseBody和@PathVariable的使用与区别
目录一、@RequestParam 注解1.1 解释说明1.2 代码示例1.3 总结二、@RequestBody 注解2.1 解释说明2.2 代码示例2.3 总结三、@ResponseBody 注解3.1 解释说明3.2 代码示例3.3 总结四、@PathVariable 注解4.1 解释说明4.2 代码示例4.3 总结一、@Re...原创 2020-03-12 12:45:19 · 1601 阅读 · 0 评论