自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java后端技术栈

未来的你在提醒你

  • 博客(523)
  • 收藏
  • 关注

转载 Github Gitee Java开发 热门中后台开源项目

架构师技术图谱可扩展,可靠且高性能的大型系统背后的模式12个低代码开源项目

2024-03-28 14:54:50 120

转载 SpringBoot启动过程详解

这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;实现 ApplicationRunner 接口实现 CommandLineRunner 接口接下来我们验证一把,为了方便代码可读性,我把这2种方式都放在同一个类里面/*** 自定义run方法的2种方式*/@Component@Override。

2023-05-12 09:39:03 2666 1

转载 Flux 和 Mono 、reactor实战 + ServerWebExchange

响应式编程用的是越来越多,尤其是在移动端 安卓的应用上边。在Java后台服务开发中, 响应式编程用的不是太广泛,主要原因是, 响应式编程需要一个完整的生态, 包括数据库、缓存、中间件,都需要配套的响应式组件。但是这点,其实很多并没有。但是,随着 SpringCloud Gateway 的火爆, 响应式编程又变成了 不可回避, 不得不去学习的技术。如果要做 SpringCloud Gateway 的开发, 就必须掌握一些响应式编程的知识。把响应式编程Flux 和 Mono 的知识梳理一下,形成了此文。

2024-07-16 16:47:57 23

转载 Spring网关与WebFlux-Mono和Flux

WebFlux 是 Spring Framework 5 引入的一个模块,它是一个 非阻塞的、异步的、响应式的 Web 开发框架。WebFlux 设计的核心是为了 使用现代 Web 应用对于高并发、低延迟和高吞吐量的需求,它采用 Reactive 编程模型,通过 Reactor 库实现了异步数据流处理。在 WebFlux 中,HTTP 请求和响应被建模为Mono(代表 0~1 个元素的异步序列)和Flux(代表 0~N个元素的异步序列)类型,这些都是 Reactive Streams 规范的一部分。

2024-07-16 16:40:49 12

原创 Markdown基本语法

网络图片](https://img-blog.csdnimg.cn/img_convert/96fa49d140b7c368838e9760383aa712.jpeg)再比如图片:<img src =https:XXXXXXXXX alt=”我的图片” style=”zoom:33%”></img>插入数学公式时,可以使用两个美元符$$包裹Tex或LaTex格式,普通编辑器可能不支持,可以放进[马克飞象]或使用Typora。[本机图片](.png)注:使用本机图片时,要一起打包图片。

2024-07-16 10:42:35 648

原创 DNS的解析过程(知识点总结)

DNS的解析过程(知识点总结)_dns解析过程-CSDN博客

2024-07-12 10:35:45 157

原创 Request流只能读取一次的问题

每次调用后的getInputStream方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一致存在。使用Filter过滤器,在一开始,替换request为自己定义的可以多次读取流的request。这样就实现了流的重复获取。比如:使用了filter或者aop在接口处理之前,获取了request中的数据,对参数进行了校验,那么之后就不能在获取request请求流了。在接口调用链中,request的请求流只能调用一次,处理之后,如果之后还需要用到请求流获取数据,就会发现数据为空。

2024-06-27 09:46:42 212

转载 条件注解之@ConditionalOnProperty注解

首先看matchIfMissing属性,用来指定如果配置文件中未进行对应属性配置时的默认处理:默认情况下matchIfMissing为false,也就是说如果未进行属性配置,则自动配置不生效。简单来讲,一般是在配置类上或者是@Bean修饰的方法上,添加此注解表示一个类是否要被Spring上下文加载,若满足条件则加载,若不满足条件则不加载。如:http编码的自动配置类中,当配置文件中没有配置spring.http.encoding.enabled,自动配置仍然会生效。

2024-06-21 12:52:47 294

原创 SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理

防篡改:参考博客:(防篡改)

2024-06-19 19:07:13 301

原创 接口防篡改+防重放攻击

nonce的意思是仅一次有效的随机字符串,要求每次请求时该参数要保证不同。实际使用用户信息+时间戳+随机数等信息做个哈希之后,作为nonce参数。如果没有,则创建这个 key,把这个 key 失效的时间和验证 timestamp 失效的时间一致,比如是 60s。如果有,说明这个 key 在 60s 内已经被使用了,那么这个请求就可以判断为重放请求。去 redis 中查找是否有 key 为 nonce:{nonce}的 string。

2024-06-19 18:24:08 309

原创 Spring中网络请求客户端WebClient的使用详解

Spring中网络请求客户端WebClient的使用详解_java_脚本之家

2024-06-19 09:39:26 240

原创 MAVEN-SNAPSHOT和RELEASE + 打包到远程仓库

RELEASE版本和SNAPSHOT是相对的,⾮SANPSHOT版本即RELEASE版本,RELEASE版本是⼀个稳定的版本号,看清楚咯,是⼀个,不是⼀系列,可以认为RELEASE版本是不可变化的,⼀旦发布,即永远不会变化。虽然RELEASE版本是稳定不变的,但是仓库还是有策略让这个原则变得可配置,有的仓库会配置成redeploy覆盖,这样RELEASE版本就变成SNAPSHOT了,伪装成RELEASE的SNAPSHOT,会让问题更费解和棘⼿,我⼀般称这类⼈为“挖坑专家”。

2024-06-12 17:07:46 1180

原创 IDEA使用遇到的问题

项目大,单类中代码过多,编辑十分卡顿。

2024-05-30 13:41:30 111

转载 RestTemplate之java.io.IOException:stream closed 异常的原因及处理

我尝试了一次,把该代码注释掉,果然不出所料,是这里的原因,那么接下来就是如何解决流只能读取一次的问题,上网搜索了一番,网上好多人解决都是说用包装类可以解决该问题,将该对象缓存下来,就不会有问题,这也就是Servlet中Fileter的实现,Filter调用链如果不包装,也可能会出现该问题。解决方案:怀疑是我加了拦截器的原因,我把拦截器注释掉,则不会报该错误,思考:为啥加了拦截器就会报错呢?springboot集成resttemplate时想打印相关请求日志,设置统一的拦截器。

2024-05-20 11:08:35 112

转载 flowable绘制常见错误集锦

使用flowable常见错误集锦。

2024-05-18 16:20:37 310

原创 有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

2024-04-26 08:53:50 271

原创 AOP动态修改注解值及异步子线程请求头丢失问题

4、多线程之--主线程结束,子线程无法获取主线程请求头信息 解决方案(实现ttl这个方式存当前请求的信息,然后去拿)1、动态注入参数:通过AOP注解占位符,匹配目标方法参数,可用于日志记录等场景。2、spel表达式匹配目标方法的参数进行动态入参。3、Java没有提供直接设置线程的上下文的对象。

2024-04-18 22:36:30 271 1

原创 maven问题汇总

其中url写成实际的地址:例如:http://hub.byd.com:9081/repository/maven-xxx-snapshot/

2024-04-17 19:35:13 622

原创 芋道框架讲解

官方文档:yudao-cloud 开发指南gitee:yudao-cloud: ruoyi-vue-pro 全新 Cloud 版本,优化重构所有功能。基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城、CRM、ERP 等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!

2024-04-16 13:56:08 819

转载 SpringBoot之自定义starter

SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。

2024-04-16 10:32:33 87

转载 Springboot之Jasypt配置文件加密/解密

前言在大多数项目中,配置文件中的 mysql 数据库密码、redis 密码等其他敏感性密码都是以明文形式存在,这种配置本身没有任何问题,但是,在某些情况下,可能会对公司造成不可挽救的损失,比如:某一天,小明因为加班过度,头脑发昏,不小心把公司项目上传到自己的 GitHub 仓库里面了,导致的后果就是,公司数据库用户名密码泄露,被某些大佬加以利用…所以,基于上面这种情况,加入配置文件中数据库用户密码等其他敏感信息都是经过加密处理过的呢???是不是可以大概率避免这种情况。Jasypt 因此应运而生。

2024-04-16 09:26:21 4356

转载 Jmeter 压测工具使用手册(完整版)

取当前时间_time,一些时间类的入参可以使用,如 {time (,)} 是生成精确到毫秒的时间戳、{time (/1000,)} 是生成精确到秒的时间戳、${__time (yyyy-MM-dd HHss,)} 是生成精确到秒的当前时间。如下图则是最低响应时间的值出现几率是很小的,实际 99% 的用户请求响应时间都要 20000+。无论要提取多少个值,引用名称就是一个的,比如名称为 id,${id_go}: 获取整个字符串 ab,${id_g1}:获取的是 a,${id_g2}:获取的是 b。

2024-04-16 08:41:00 847

转载 灰度发布实现

微服务中的灰度发布(又称为金丝雀发布)是一种持续部署策略,它允许在正式环境的小部分用户群体上先部署新版本的应用程序或服务,而不是一次性对所有用户同时发布全新的版本。这种方式有助于在生产环境中逐步验证新版本的稳定性和兼容性,同时最小化潜在风险,不影响大部分用户的正常使用。

2024-04-11 15:59:18 353

转载 Flowable常用网关使用介绍

并行网关允许将流程分成多条分支,也可以把多条分支汇聚到一起,并行网关的功能是基于进入和外出顺序流的。并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。所有到达并行网关,在此等待的进入分支, 直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。排他网关,也叫异或网关,用于对流程中的决策建模。当执行到达这个网关时,会按照所有出口顺序流定义的顺序对它们进行计算。和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们。业务1、业务2都处理,并且当业务1、业务2都完成后才会汇聚走下面的。

2024-04-10 09:19:57 352

转载 Flowable主要容器介绍

我们通常意义上说的子流程通常就是指的内嵌子流程,它表现为将一个流程(子流程)定义在另一个流程(父流程)的内部,子流程作为父流程的一部分。子流程是主流程中的一部分流程片段,并非独立的流程定义,一般作为局部通用逻辑处理,或者因为特定业务需要,使比较复杂的单个主流程设计清晰直观。调用活动可以引用流程定义外部的流程,当执行到调用活动时启动引用的外部流程,当外部流程执行完后转到当前流程下一节点。和内嵌子流程类似,把一系列的活动归结到一起处理,不同之处在于事件子流程不能直接启动,要被动地由其它的。

2024-04-10 09:15:41 47

转载 flowable可使用元素介绍

external-worker服务任务允许您在Flowable流程引擎中执行外部任务,并与外部服务进行交互。可以将Flowable流程与外部应用程序或服务集成,并在流程执行期间调用外部服务的API。Camel服务任务允许您向Camel发送消息并从Camel接收消息。DMN是一种业务决策模型和语言,它用于描述业务决策的图形表示。DMN服务任务允许您在流程中嵌入DMN决策逻辑。Camel是一种简单的连接不同的应用程序和服务。Mule服务任务允许你发送消息给Mule。Mule是一个基于ESB架构的消息平台。

2024-04-10 09:14:15 35

转载 Flowable主要API介绍

ProcessMigrationService是Flowable引擎中的一个服务接口,用于支持流程实例的迁移和升级。ManagementService是Flowable引擎中的一个服务接口,用于管理和操作引擎的一些管理任务和操作。RuntimeService是Flowable引擎中的一个服务接口,用于管理流程实例的运行时状态和相关操作。TaskService是Flowable引擎中的一个服务接口,用于处理任务相关的操作和数据。引擎中的服务之一,用于管理流程定义的部署和查询。表结构不存在则会创建。

2024-04-10 09:12:18 179

转载 存储过程学习,很全很细,有语法 | 有例子 | 批量造数据100万 | 附件带脚本

存储过程其实很简单,就是数据库SQL脚本层面的代码封装与重用,创建编译并保存在数据库中。

2024-04-08 09:25:12 88

转载 常见系统简写含义

OMS (订单管理系统)OMS系统可实现单次及批量订单,订单管理与库存管理相连接,并且在下订单时有库存预警及提示功能,订单管理同时与客户管理相连接,可查询历史订单情况以及订单的执行情况WMS (仓储管理系统)WMS仓储管理系统中的软件指的是支持整个系统运作的软件部分,包括收货处理、上架管理、拣货作业、月台管理、补货管理、库内作业、越库操作、循环盘点、RF操作、加工管理、矩阵式收费等TMS (运输管理系统)

2024-03-15 17:14:59 78

转载 Flowable集成Springboot

为啥想写flowable呢?原因很简单,因为最近在录的 tienchin 项目视频会用到,先写一篇文章和大家打打预防针,后面视频再细讲。流程引擎,也算是一个比较常见的工具了,我们在日常的很多开发中都会用到,当然用的最多的就是 OA 系统了,但是在一些非 OA 系统中,我们也会涉及到,比如一个 CRM 中,可能会有合同管理的需求,合同的审批,也是需要流程引擎的。所以今天我们来简单聊聊流程引擎,顺便写一个简单的例子,小伙伴们一起来感受下流程引擎到底是个啥。

2024-02-22 16:28:39 161

原创 CSDN第四个年头(选择没有对错,错的也要变成对的)

提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等​​。

2024-02-22 15:06:41 476 1

转载 一文学会Java并发编程 Future、CompletableFuture

thenRun 也是对线程任务结果的一种消费函数,与thenAccept不同的是,thenRun 会在上一阶段 CompletableFuture 计算完成的时候执行一个Runnable,Runnable并不使用该 CompletableFuture 计算的结果。你可以把它看成一个计算流水线上的一个单元,并最终会产生一个最终结果,这意味着几个CompletionStage 可以串联起来,一个完成的阶段可以触发下一阶段的执行,接着触发下一次,再接着触发下一次,……从某种程度上说,这项能力是它的核心能力。

2024-01-31 15:25:11 110

转载 各种读取resources目录下文件的方法

我们写使用java写web项目时,有时需要将某些文件存放到resources目录下,之后我们需要在程序中去获取文件。如果是文件路径的话getFile和getPath效果是一样的,如果是URL路径的话getFile是带有参数的路径。这个命令去获取resource的路径,下面我打断点,可以看到resource的内容,里面有file,path。注意:有的可以在web项目中使用,有的则不可以在web项目中使用。现在主流的部署方式是将项目打成jar包部署。所以我们就要通过流的方式去获取文件。

2024-01-24 15:44:57 501

转载 Springboot集成Actuator和SpringbootAdminServer监控

Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。Actuator同时还可以与外部应用监控系统整合,比如PrometheusGraphiteDataDogInfluxWavefrontNew Relic等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松的监控和管理你的应用。示例:"db": {},},

2023-12-19 13:53:57 214

转载 CommandLineRunner、ApplicationRunner、ApplicationListener、@PostConstruct对比

1、一些比较独立,内容小巧的初始化逻辑,不影响springboot启动速度的使用@postConstruct注解2、若想通过ApplicationListener事件监听的方式,则需要处理好指定的容器、3、在数据初始化层面,不推荐@PostConstruct和ApplicationListener,原因是两者都会影响程序的启动,如果执行逻辑耗时很长,启动服务时间就很长。

2023-12-14 23:36:53 561

原创 springboot集成阿里云短信服务

Springboot整合阿里云短信服务_spring boot集成阿里短信验证码-CSDN博客

2023-12-05 13:10:29 590

转载 Skywalking -- traceid

Skywalking全链路追踪使用说明-CSDN博客全网最全的Skywalking链路追踪-CSDN博客三、SpringBoot工程集成Skywalking。

2023-11-23 14:30:28 100

转载 springboot使用编程式事务

1.事务的定义包含:事务的隔离级别、事务的传播属性、超时时间设置、是否只读红线上方是些常量定义,关于常量定义(事务的隔离级别和事务的传播属性等等)具体事务常量定义//略复制事务的传播属性为,如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。被设置成这个级别时,会为每一个被调用的方法创建一个逻辑事务域。如果前面的方法已经创建了事务,那么后面的方法支持当前的事务,如果当前没有事务会重新建立事务,其他请看事务的传播属性事务的隔离级别采用底层数据库默认的隔离级别超时时间。

2023-11-23 14:08:26 1356

原创 四种常见分布式限流算法实现!

我们可以看到,计数器类的限流,体现的是一个“戛然而止”,超过限制,立马决绝,但是有时候,我们可能只是希望请求平滑一些,追求的是“波澜不惊”,这时候就可以考虑使用其它的限流算法。固定窗口算法的优点是实现简单,占用空间小,但是它存在临界问题,由于窗口的切换是瞬间完成的,因此请求的处理并不平滑,可能会在窗口切换的瞬间出现流量的剧烈波动。这里还有一个小的可以完善的点,zset在member相同的情况下,是会覆盖的,也就是说高并发情况下,时间戳可能会重复,那么就有可能统计的请求偏少,这里可以用。

2023-11-08 16:01:43 852

原创 性能诊断工具对比+Prometheus(普罗米修斯)监控系统学习

【精选】Prometheus(普罗米修斯)监控系统_普罗米修斯监控_愿许浪尽天涯的博客-CSDN博客

2023-10-27 16:48:29 1348

尚硅谷RabbitMQ pdf笔记(优质文档)

尚硅谷RabbitMQ pdf笔记(优质文档)

2023-12-15

空空如也

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

TA关注的人

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