
springboot
文章平均质量分 72
kamjin1996
全栈,主做后端和架构设计,开发过Web网页、PC桌面端、手机APP、小程序,主力语言Kotlin、Java、Python、Typescript,兴趣广泛,欢迎提出合作和问题咨询。
展开
-
【kotlin】在SpringBoot项目中使用kotlin协程coroutine实现方法的异步延迟调用,例如延迟查询短信发送详情结果。
当前做法实现了对某个方法异步延迟的操作,常见的场景如短信发送日志的延迟查询和记录。一般来说,短信的发送和接收,在短信云服务商那里形成完整记录是需要一定的时间的,只有这段时间过去才可以有效查到短信的发送详情。编写一个回调接口,并将该接口配置为回调地址,等待短信服务商回调该接口接收数据并记录。使用MQ创建延迟队列,在延迟队列触发后去查询数据并记录。使用定时任务,定时批量查询数据并记录。原创 2024-03-13 14:00:31 · 1172 阅读 · 1 评论 -
【NACOS自定义配置读取和映射】一个简易的Nacos配置读取和映射处理器,自定义注解+BeanPostProcessor,简单方便高效的属性注入解决方法
众所周知由Spring提供的注解属性,是一种简单易用且方便维护的自定义配置读取映射方式。部分API不会直接生效或者说需要做一些额外的操作,具体就是直接使用了@NacosConfigurationProperties后也没效果,使用了@NacosPropertySource标注了也没有效果,从源码里找处理的部分,在nacos-client包里没有的。感觉这块的api设计上本身就缺乏一些考究,既然加上没效果就放在有效果的包里好了,放在nacos-client包里面,它只是个摆设。原创 2023-06-12 16:28:23 · 2818 阅读 · 2 评论 -
如何在代码中获取java maven应用当前的版本号等信息?
序最近需要在项目中获取项目的版本号,最笨的方法莫过于硬编码一个版本号,当然我也是这么干的。不过闲下来的时候突发奇想Spring Boot项目中pom.xml定义的版本号能不能通过API获得呢?于是利用摸鱼的时间研究了这种无聊透顶的东西。目前大多数Spring Boot项目都会打成Jar包,所以什么War包、Ear包的就先不摸索了。Jar包的秘密我们先解压一个Spring Boot应用Jar包看看里面能不能找到一些蛛丝马迹。在META-INF文件夹中找到了两个相关的东西,一个是MANIFEST.M转载 2022-03-16 14:56:08 · 5362 阅读 · 0 评论 -
SpringCloud-Gateway获取body参数,解决只能获取一次问题,终极解决方案
这几天有个对SpringCloud-Gateway网关请求参数做安全校验的需求,网上多数教程不适用于SpringBoot2.1+版本。我在SpringCloud gateway Github中的Issues找到了答案,放上连接:作者采纳的答案。 具体代码如下: @Componentpublic class CacheBodyGatewayFilter implements Ordered, Globa...原创 2021-03-19 14:04:46 · 5575 阅读 · 35 评论 -
解决HttpServletRequest的输入流只能读取一次的问题,springMVC拦截器获取POST请求参数
背景通常对安全性有要求的接口都会对请求参数做一些签名验证,而我们一般会把验签的逻辑统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。在一个项目中会有很多的接口,而不同的接口可能接收不同类型的数据,例如表单数据和json数据,表单数据还好说,调用request的getParameterMap就能全部取出来。而json数据就有些麻烦了,因为json数据放在body中,我们需要通过request的输入流去读取。 但问题在于r...转载 2021-03-12 10:50:04 · 1984 阅读 · 0 评论 -
gateway 返回Body 数据居然出现偶现的乱码问题, 原来是数据被截断背的锅
1、查看问题在开发的时候,发现页面的数据偶先乱码,但有不清楚是那的问题,我们使用swagger-ui参数,发现乱码数据,但概率为1/10,每10次大概查询一次,如下 一会又是正常的 返回数据是json数据,编码 utf8,一切都是正常的,重点是偶现,这就奇葩了 2、定位问题 因为我们是微服务项目使用了 spring-cloud-gateway做为网关,于是使用网关地址和 项目地址分别测试 走网关地址 走具体的项目地址 果然走网关地址的url 会出现乱码,走具体的项目地址的不会出现乱码问题转载 2020-10-27 10:59:15 · 2403 阅读 · 4 评论 -
SpringBoot不重启修改日志级别【Slf4j、Logback动态日志级别】
SpringBoot不重启修改日志级别【Slf4j、Logback动态日志级别】前言需求: 线上日志级别高,而定位问题时需要低级别日志便于分析问题功能:不重启服务器,提供设置页,手动触发Slf4j 项目日志级别变化扩展:可将此功能放入后台管理系统中...转载 2020-08-12 15:18:31 · 1018 阅读 · 1 评论 -
springboot2.2.x集成zipkin
前言场景:springboot2.2.2集成zipkin。 在做集成gateway的时候,在网上看到别人的配置里面有这个zipkin的配置,就随便搜了下,没...转载 2020-06-02 10:18:09 · 1660 阅读 · 1 评论 -
spring-boot添加到linux服务
在/usr/lib/systemd/system/下创建service文件[Unit]Description=myfee [Service]WorkingDirectory=/usr/share/web-appExecStart=/usr/share/jdk1.8.0_151/bin/java -ja...转载 2020-06-01 11:36:45 · 163 阅读 · 0 评论 -
spring-cloud 分布式日志采集
由于微服务架构中每个服务可能分散在不同的服务器上,因此需要一套分布式日志的解决方案。spring-cloud提供了一个用来trace服务的组件sleuth。它可以通过日志获得服务的依赖关系。基于sleuth,可以通过现有的日志工具实现分布式日志的采集。这里使用的是ELK,也就是elasticsearch、logstash、kibana。一、sleuth第一步:sleut...转载 2020-06-01 11:27:44 · 1018 阅读 · 0 评论 -
springboot1.5.x升级2.2.x问题,java.lang.NoClassDefFoundError: org/springframework/util/unit/DataSize
问题:项目所用的springboot版本从1.5.x升级到2.2.x,项目启动报java.lang.NoClassDefFoundError: org/springframework/util/unit/DataSize原因:spring版本和springboot及springcloud的适用版本对不上网上一般解决方式:找到自己定义过的spring版本,修改为5.2.x即可PS: 想...原创 2020-04-16 09:27:36 · 2087 阅读 · 0 评论