
SpringBoot3启示录
文章平均质量分 77
大狼狗启示录,与SpringBoot3、SpringCloud2相关的,例如eureka/zuul/jpa/mybatis plus/feign/websocket/jms/poi/redis/udp等等。
Moshow郑锴
Powered by Core iMoshow
展开
-
SpringBoot3+EasyExcel通过WriteHandler动态实现表头重命名
为了通过 EasyExcel 实现动态表头重命名,可以封装一个方法,传入动态的新表头名称列表(List<String>),并结合 WriteHandler 接口来重命名表头。同时,通过 EasyExcel 将数据直接写入到输出流。原创 2025-03-31 00:00:00 · 669 阅读 · 0 评论 -
SpringBoot 3+ Lombok日志框架从logback改为Log4j2
若启动时报SLF4J绑定冲突,检查是否遗漏排除。是否生成,且每天会自动滚动生成新文件(如。:使用Spring Profile,创建。:滚动时间基于服务器时区,可用。:检查控制台是否有日志输出。注解生成的日志能正常工作。:确保配置文件命名为。原创 2025-03-26 23:57:41 · 456 阅读 · 0 评论 -
Kubernetes中将SpringBoot3的application.yaml配置文件迁移到ConfigMap实现配置与代码的分离
在 Kubernetes 中将 Spring Boot 3 的配置文件迁移到 ConfigMap 是一种常见的做法,可以实现配置与代码的分离,增强灵活性。1. 创建 ConfigMap 2. 在 Deployment 中挂载 ConfigMap 3. 修改 Spring Boot 配置路径原创 2025-03-22 21:11:27 · 341 阅读 · 0 评论 -
The processing instruction target matching "[xX][mM][lL]" is not allowed
问题背景今天调试eas的ws接口,发现报错“The processing instruction target matching “[xX][mM][lL]” is not allowed”解决方案仔细检查XML,发现String strXml = " <?xml version='1.0'开头是不允许有空格的,可能是我用sublime text列模式修改导致。也就是说格式化为XM...原创 2018-11-28 12:06:58 · 4063 阅读 · 0 评论 -
JDBC/MYSQL问题 : Unknown system variable 'query_cache_size'
背景今天运行一个开源项目,竟然遇到Caused by: java.sql.SQLException: Unknown system variable 'query_cache_size'的问题。真是神奇,query_cache_size是什么,如何解决?>>>先看详细报错信息:#by zhengkai.blog.youkuaiyun.com2019-09-08 22:20:09.82...原创 2019-09-08 22:28:41 · 5040 阅读 · 5 评论 -
免费ssl证书申请以及nginx配置https访问攻略
攻略背景最近需要为我哥的协会申请ssl证书,因为小程序接口需要https。于是开启了这一番折腾,最后简化为一篇攻略。第一步,申请SSL证书这个网站最好,可以申请到1年的,其他都是三个月。1年后再申请就行了。https://freessl.cn/第二步,验证服务器可以DNS验证,就是配置域名,那个太麻烦,可以选择验证服务器。只要保证http://www.你的域名.cn/.well-k...原创 2018-11-10 16:19:13 · 3303 阅读 · 1 评论 -
JCE无限制权限策略文件(java.security.InvalidKeyException: Illegal key size解决方案)
问题背景今天调试售票系统的加密,发现加密解密再JDK10下面是ok的,再JDK8下面就GG了,搞了半天,后来发现,原来另有原因,是个坑。Exception in thread "main" java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.checkCryptoPerm(Cipher.java...原创 2018-12-24 15:38:06 · 4819 阅读 · 6 评论 -
vue/js时间戳转标准格式
问题背景有时候后端java返回的时间格式是时间戳,这个是由于ORM映射的关系一般都映射为时间戳,所以不能直接用于显示的,例如1554710403000,需要前端js/vue进行转换。解决方案// 初级转换:时间戳 => 标准格式 formatterDate(data) { //blog.youkuaiyun.com/moshowgame var date = new Date...原创 2019-04-08 16:57:03 · 2218 阅读 · 1 评论 -
搭建开源IM服务器Openfire(一)环境搭建、UserService插件
Openfire是什么?Openfire 是基于XMPP 协议的IM 的服务器的一个实现,性能方面还不错,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。Openfire 也提供了一些基本功能,同时提供Smack和Spark,建议使用插件扩展的方式来增加新的功能,里面有个UserService就很不错。...原创 2018-11-08 14:35:38 · 4240 阅读 · 0 评论 -
Java中将文件转换为Base64编码的字节码
在Java中,将文件转换为Base64编码的字节码通常涉及以下步骤:读取文件内容到字节数组。使用java.util.Base64类对字节数组进行编码。原创 2024-06-21 22:34:37 · 1875 阅读 · 0 评论 -
RESTful架构理解
什么是REST? REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,...原创 2018-05-02 23:47:50 · 405 阅读 · 0 评论 -
js复制文本到粘贴板(Clipboard.writeText())
前言js如何复制文本到粘贴板呢,网上所说的各种复制。。在Chrome都没用。网上的代码基本思路是通过 window.clipboardData.setData('Text',textVal)这个 对象来操作的。可是都不work。/*** 复制代码 */$('#btnCopy').bind('click', function (e) { if (!$.isEmptyObject...原创 2019-11-14 22:43:19 · 5818 阅读 · 0 评论 -
spring-boot-2.0的pom.xml
这是一份可以运行的spring-boot整合pom,,,前段时间研究和学习用的,,暂时懒得整理,,其他的暂时没整理,放上来先。已添加阿里云maven镜像地址,如果不需要mybatis-plus可以屏蔽掉先。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4...原创 2018-04-16 10:25:40 · 5019 阅读 · 0 评论 -
java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.util.List
前言最近在使用renren-fast框架改造一个爬虫3.0项目,发现了一个官方的bug java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.util.List ,肉眼可见是由于Long[]不能转换为List<Object>导致的。详细报错2021-06-20 22:14:48.436 ERROR 15920 --- [io-8080-exec-18] i.r.common.exception.RREx原创 2021-06-20 22:29:07 · 3467 阅读 · 1 评论 -
Swagger2常用的注解
Swagger提供的常用的注解有:@Api:用在类上,说明该类的作用@ApiOperation:用在方法上,说明方法的作用,标注在具体请求上,value和notes的作用差不多,都是对请求进行说明;tags则是对请求进行分类的,比如你有好几个controller,分别属于不同的功能模块,那这里我们就可以使用tags来区分了。@ApiImplicitParams:用在方法上包含一组参数说明...原创 2018-06-24 11:52:10 · 1046 阅读 · 0 评论 -
JAVA 利用ASCII码偏移(来自IDEA免费激活码游戏)
前言最近idea风风光光激活码失效,于是官方推出了一系列游戏,DD大哥也给我们解析了很多20/03/13 JetBrains 第二轮:再为免费全家桶续命三个月20/03/12 免费获取 Jetbrain 全家桶使用兑换码的正确姿势!兑换地址https://www.jetbrains.com/promo/quest/解决方案其中第一个任务,你需要到MPS-31816去获取一个线索。...原创 2020-03-15 13:22:34 · 1308 阅读 · 0 评论 -
JDBC:The server time zone value ‘�й���ʱ��‘ is unrecognized or represents more than one time zone.
#2020年10月9日更新#__使用Asia/Shanghai来替代具有不确定性的UTC/GMT(很多人会以为可以UTC+8或者GMT+8,想法很美好但那种用法是不存在的)。新增DBeaver / IDEA 设置jdbc属性方法。#背景#今天项目切换到了mysql8.0.12,结果还多了一个报错,请注意…即使没有升级mysql到8.x,只升级jdbc到8.x也会导致该问题。The server time zone value ‘�й���ʱ��’ is unrecognized or represen原创 2019-09-08 22:45:54 · 4171 阅读 · 0 评论 -
Java用文件流mask文本文件某些特定字段
在Java中,如果你想要掩码(mask)文本文件中的某些特定字段,你可以按照以下步骤进行:读取文本文件内容。找到并识别需要掩码的字段。用特定的掩码字符(如星号*)替换这些字段。将修改后的内容写回文件或输出到控制台。原创 2024-06-21 22:41:50 · 663 阅读 · 0 评论 -
SpringBoot3使用CompletableFuture时java.util.ConcurrentModificationException异常解决方案
在Spring Boot 3项目中,使用CompletableFuture进行异步编程时,偶发{"code":500,"msg":"java.util.ConcurrentModificationException"}异常,通过显式指定线程池+结合@Async注解的双重防护策略,可有效解决因线程竞争导致的ConcurrentModificationException。核心思路是通过资源隔离切断并发冲突路径,同时提高系统异步调用的可控性。原创 2025-03-22 20:58:38 · 644 阅读 · 0 评论 -
SpringBoot3+Druid+MybatisPlus多数据源支持,通过@DS注解配置Service/Mapper/Entity使用什么数据源
如果没有使用 @DS 注解,则默认使用主数据源。(primary: master # 默认数据源)@DS 注解可以放在方法、类、接口或枚举上,方法上的注解优先级最高。如果需要动态切换数据源,建议在 Service 方法上使用 @DS 注解,这样可以更灵活地根据业务逻辑切换。通过以上配置,即可实现 Spring Boot 3 + Druid + MyBatis-Plus 的多数据源支持,并通过 @DS 注解动态切换数据源。原创 2025-03-18 00:04:00 · 502 阅读 · 0 评论 -
MyBatis-Plus防全表更新与删除插件BlockAttackInnerInterceptor
MyBatis-Plus防全表更新与删除插件BlockAttackInnerInterceptor 是 MyBatis-Plus 框架提供的一个安全插件,专门用于防止恶意的全表更新和删除操作。语句,确保这些操作不会无意中影响到整个数据表,从而保护数据的完整性和安全性。原创 2025-03-18 00:03:37 · 552 阅读 · 0 评论 -
SpringBoot3和企业版Splunk集成(附加docker配置)
生产环境中应禁用`disableCertificateValidation`或`insecureskipverify`,并为HEC配置有效SSL证书。- 创建新的HEC Token,记录Token值和HEC URL(如 `https://<splunk-server>:8088`)。3. **配置Logback(`logback-spring.xml`)**- **应用内集成HEC**:适合需要结构化日志或精细控制日志内容的场景。### **方式二:通过Docker日志驱动直接发送到Splunk**原创 2025-03-17 08:52:11 · 418 阅读 · 0 评论 -
SpringBoot3+Lombok如何配置logback输出日志到文件
SpringBoot3+Lombok如何配置logback输出日志到文件,因为我需要对这些日志进行输出,控制台输出和文件输出,文件输出是为了更好的作为AuditLog且支持滚动式备份,每天一个文件。原创 2025-03-14 00:02:21 · 612 阅读 · 0 评论 -
SpringBoot3整合FastJSON2如何配置configureMessageConverters
在 Spring Boot 3 中整合 FastJSON 2 主要涉及到以下几个步骤,包括添加依赖、配置 FastJSON 作为 JSON 处理器等。原创 2024-12-19 23:24:36 · 1966 阅读 · 0 评论 -
Spring Boot中CollectionUtils怎么用
在Spring Boot中,CollectionUtils是 Spring Framework 提供的一个工具类,主要用于简化对集合(如 List、Set、Map 等)的操作。它在org.springframework.util包中。提供了一些方便的方法来处理集合,尤其是在判断集合是否为空时非常有用。对于更复杂的集合操作,通常可以结合 Java 的集合框架和流 API 来实现。原创 2024-12-15 23:12:38 · 698 阅读 · 0 评论 -
upgrade springdoc-openapi to 2.7.0 to ensure compatibility with spring-boot 3.4.0
如果你是用springdoc,请更新到springdoc-openapi to 2.7.0系列,但是仍然有BUG,swaggerui页面无法直接读取到openapi,需要等待下一版本进行深度适配。如果你是用knif4j,请等候。原创 2024-12-15 23:00:47 · 426 阅读 · 0 评论 -
SpringBoot3+Micormeter监控应用指标
Start time: JVM启动时间 - 即:根据该指标可以知道目前程序启动的时间Uptime: JVM运行时间 - 即:根据该指标可以知道目前程序运行时长通过以上步骤,你已经成功地将 Spring Boot 应用的监控数据集成到 Prometheus 中。Micrometer 作为监控库,提供了丰富的功能,可以帮助你监控应用的各个方面。你可以根据自己的需求,进一步扩展和自定义监控指标。原创 2024-12-07 11:18:44 · 1474 阅读 · 0 评论 -
SpringBoot+Resilience4j实现接口限流
在 Spring Boot 项目中使用 Resilience4j 实现接口限流可以通过以下步骤完成。Resilience4j 是一个用于实现熔断、限流、重试等功能的轻量级库。原创 2024-12-07 11:05:03 · 710 阅读 · 0 评论 -
Spring Shell如何与SpringBoot集成并快速创建命令行界面 (CLI) 应用程序
Spring Shell 是一个强大的工具,可用于构建命令行应用程序,提供了简单的方式来创建和管理交互式 CLI。Spring Shell 与 Spring Boot 的集成提供了创建强大和灵活的命令行应用程序的能力,适用于多种场景,如自动化管理、数据迁移、应用状态监控、与数据库交互等。开发人员可以利用 Spring Boot 的优势,快速开发功能丰富的 CLI 工具,提高开发效率和运维能力。原创 2024-12-02 00:10:41 · 1484 阅读 · 0 评论 -
How to monitor Spring Boot apps with the AppDynamics Java Agent
本文介绍如何使用 AppDynamics Java 代理监视 Azure Spring Apps 中的 Spring Boot 应用程序。在 AppDynamics 仪表板中检查所有监视数据。原创 2024-12-01 13:41:42 · 1085 阅读 · 0 评论 -
SpringBoot3如何基于ServletRequestHJandledEvent检测接口响应时间以及对应的参数
在 Spring Boot 3 中,可以通过实现ServletRequestHandledEvent事件来监测接口的响应时间以及相关的参数。ServletRequestHandledEvent是 Spring 的应用事件之一,它在请求处理完成时发布,包含有关请求的信息。原创 2024-12-01 13:31:32 · 463 阅读 · 0 评论 -
mybatis plus如何使用mybatis xml拼接sql
在 MyBatis Plus 中,如果你想使用 MyBatis 的 XML 文件来拼接 SQL,可以结合使用 MyBatis 和 MyBatis Plus 的功能。MyBatis Plus 是一个增强 MyBatis 的工具,它提供了很多便捷的操作,但有时你可能需要使用 XML 文件来定义更复杂的 SQL 语句。原创 2024-11-25 22:48:50 · 1003 阅读 · 0 评论 -
SpringBoot3+Jasypt如何在配置文件中对数据库的密码进行加密以防止密码泄露
在 Spring Boot 3 中,可以通过`jasypt-spring-boot-starter`对配置文件中的数据库密码或者其他重要密码进行加密,操作非常简单,可以有效地保护 Spring Boot 应用程序中的敏感信息。选择适合你的应用场景的加密策略,确保密码等敏感数据的安全。请注意保存好你的encryptionKey和password。原创 2024-11-23 00:29:52 · 507 阅读 · 0 评论 -
SpringBoot3与JUnit5集成测试
你可以在 Spring Boot 3 中轻松设置和运行 JUnit 集成测试。合理使用 Spring 提供的注解和工具,可以确保测试的高效性和可靠性。原创 2024-11-23 00:20:29 · 877 阅读 · 0 评论 -
SpringBoot中设置超时30分钟自动删除元素的List和Map
在 Spring Boot 中,你可以使用多种方法来实现自动删除超时元素的 List 或 Map。如果你需要简单的功能并且不介意引入外部依赖,可以选择 Guava Cache。如果你想要更灵活的控制,使用 Spring 的调度功能也是一个不错的选择。原创 2024-11-21 00:18:37 · 1006 阅读 · 0 评论 -
MybatisPlus使用P6SY打印SQL日志
p6spy是一个针对数据库访问进行拦截和记录的工具,它通过代理JDBC驱动程序来工作。这意味着你的应用程序可以像往常一样使用JDBC,而p6spy会在幕后记录所有的SQL语句及其执行时间。这对于开发和调试过程中的SQL优化非常有用。p6spy慢SQL检测:通过配置和p6spy可以记录执行时间超过设定阈值的SQL语句。自定义日志格式:通过,你可以自定义SQL日志的输出格式,包括时间戳、执行时间、SQL语句等。日志输出控制appender配置项允许你选择日志输出到控制台、文件或日志系统。p6spy。原创 2024-11-11 23:06:56 · 854 阅读 · 0 评论 -
在SpringBoot3中启用HTTP2
启用HTTP2可以带来更高效的数据传输、更优的性能表现以及更好的用户体验。:HTTP2采用二进制格式传输数据,而非HTTP1.x的文本格式,这使得协议解析更高效,且便于扩展。:HTTP2对消息头采用HPACK进行压缩传输,能够节省消息头占用的网络流量,而HTTP1.x每次请求都会携带大量冗余头信息,浪费了带宽资源。:HTTP2支持在单个TCP连接上并行执行多个请求,而HTTP1.x中的Pipelining存在头阻塞问题,即后面的请求需要等待前面的请求完成才能执行。原创 2024-11-11 22:53:35 · 848 阅读 · 0 评论 -
使用JMeter进行Spring Boot接口的压力测试
使用 JMeter 进行压力测试的主要步骤包括安装 JMeter、创建测试计划、配置 HTTP 请求、添加监听器和运行测试。您可以根据需要调整线程数和其他参数,以模拟不同的负载情况。获得的结果将帮助您分析应用性能。t=O83AJMeter 官方网站https://jmeter.apache.org/download_jmeter.cgi。原创 2024-10-19 01:07:52 · 1405 阅读 · 0 评论 -
Spring Boot实现接口限流
在 Spring Boot 中,可以通过多种方式实现接口限流。原创 2024-10-19 00:58:31 · 1521 阅读 · 0 评论 -
SLF4J(W): Class path contains multiple SLF4J providers.
最近在给某AI项目集成阿里的通义千问SDK,发现竟然有个奇怪的报错,仔细一看发现,我类上用的lombok的@Slf4j注释,阿里用的是org.slf4j.simple.SimpleServiceProvider,但是lombok用的是LogbackServiceProvider,所以就有冲突了,需要解决一下。我的思路是exclude 阿里的sdk包的org.slf4j.simple.SimpleServiceProvider。原创 2024-10-03 22:33:53 · 769 阅读 · 2 评论