- 博客(542)
- 收藏
- 关注

转载 SpringBoot启动过程详解
这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;实现 ApplicationRunner 接口实现 CommandLineRunner 接口接下来我们验证一把,为了方便代码可读性,我把这2种方式都放在同一个类里面/*** 自定义run方法的2种方式*/@Component@Override。
2023-05-12 09:39:03
3023
1
原创 Tomcat线程池详解,为什么SpringBoot最大支持200并发?
在 Spring Boot 微服务架构中,单个实例的性能瓶颈通常不在于并发连接数(如200个并发连接),而是在于单个实例能够处理的请求速率和资源使用情况(如CPU、内存、I/O等)。如果你的单个微服务实例在单机上能够处理200个并发连接而没有达到性能瓶颈,那么增加更多的实例理论上可以提升整体的吞吐量和可用性。在考虑多实例部署之前,务必确保单实例的性能已经达到了瓶颈,并且通过适当的负载测试验证多实例部署后的性能提升。同时,合理的资源分配、服务发现与注册、以及有效的监控是确保多实例部署成功的关键因素。
2025-03-17 16:37:48
400
原创 Elasticsearch理解01
图例1: 图例2:Java从入门到架构师_Elasticsearch-优快云博客(优质)重学Elasticsearch第6章 : SpringBoot整合RestHighLevelClient_es集群resthighlevelclient springboot-优快云博客Springboot中使用Elasticsearch(部署+使用+讲解 最完整)_spring boot elasticsearch-优快云博客Springboot引入elasticsearch-rest-high-leve
2025-02-18 14:35:03
534
原创 转换树结构数据
java中把一个list转tree的三种方法——工具类_java list转tree-优快云博客java如何将一个list转换为树形结构 java list转tree_jiecho的技术博客_51CTO博客
2025-02-08 11:26:55
180
原创 IDEA常见50个实用插件+idea提效设置
Idea常见50个插件汇总(超级实用)_idea 常用插件-优快云博客新款 IDEA 神级插件!效率提升 50 倍!-腾讯云开发者社区-腾讯云
2025-02-06 17:55:43
122
原创 SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理
防篡改:参考博客:(防篡改)
2025-01-18 09:36:26
621
原创 接口防篡改+防重放攻击
nonce的意思是仅一次有效的随机字符串,要求每次请求时该参数要保证不同。实际使用用户信息+时间戳+随机数等信息做个哈希之后,作为nonce参数。如果没有,则创建这个key,把这个key失效的时间和验证timestamp失效的时间一致,比如是60s。如果有,说明这个key在60s内已经被使用了,那么这个请求就可以判断为重放请求。去redis中查找是否有key为nonce:{nonce}的string。
2025-01-18 09:31:17
1342
原创 Maven项目中pom文件中的dependencyManagement,dependencies,dependency有什么区别?
Maven项目中pom文件中的dependencyManagement,dependencies,dependency有什么区别?_pom dependencymanagement-优快云博客
2025-01-13 16:00:13
146
转载 synchronized的四种用法
Synchronized修饰一个方法很简单,就是在方法的前面加synchronized,synchronized修饰方法和修饰一个代码块类似,只是作用范围不一样,修饰代码块是大括号括起来的范围,而修饰方法范围是整个函数。例如:方法一// todo方法二// todo写法一修饰的是一个方法,写法二修饰的是一个代码块,但写法一与写法二是等价的,都是锁定了整个方法时的内容。synchronized关键字不能继承。
2024-12-24 18:42:42
509
转载 工作流学习-flowable监听器使用
事件监听器主要用于全局级别的事件处理,它可以监听流程实例生命周期中的特定事件,以及流程定义、任务、作业等各种实体相关的事件。在BPMN规范中,序列流(Sequence Flow)是连接两个活动的路径,当流程沿着序列流进行流转时,会在转移过程中触发 take 事件。这通常发生在流程实例的生命周期初期,例如当一个流程启动或进入一个新的活动节点(如用户任务、服务任务、脚本任务等)时。当流程从一个活动节点转移到另一个节点时,执行一些通用的数据处理操作,如更新业务对象的状态、计算动态路由条件等。
2024-11-29 15:58:27
1580
原创 SpringBoot 容器启动之后初始化操作
在项目开发中,有时候会在 Spring 应用启动后做一些初始化的操作,比如数据字典缓存,状态通知,配置读取等操作。Event执行优先级 @PostConstruct > SmartLifecycle.start() > ContextRefreshedEvent > ApplicationStartedEvent >ApplicationRunner > CommandLineRunner > ApplicationReadyEvent。
2024-11-23 14:20:04
1030
原创 Mybatis数据脱敏-自定义一个TypeHandler类型的处理器,用于处理数据的加密和解密
SpringBoot接口返回数据脱敏(Mybatis、Jackson)_java_脚本之家
2024-11-11 09:09:16
168
转载 @EnableConfigurationProperties的使用方式以及作用
在测试代码上加上@EnableConfigurationProperties,参数指定那个配置类,该配置类上必须得有@ConfigurationProperties注解。(提外话:具体的yml文件字符串、List、Map的书写方式并使用@ConfigurationProperties注入配置类.)结果图,仍然可以绑定。
2024-08-08 16:50:03
523
转载 PostgreSQL分区表
分区表数据库分区表将表数据分成更小的物理分片,以此提高性能、可用性、易管理性。分区表是关系型数据库中比较常见的对大表的优化方式,数据库管理系统一般都提供了分区管理,而业务可以直接访问分区表而不需要调整业务架构,当然好的性能需要合理的分区访问方式。分区表是数据库中常见的技术,而PostgreSQL中的分区表有许多专有的特性,比如分区表实现方案多、分区为普通表、分区维护方案、SQL优化还有一些分区表的问题。
2024-07-25 18:15:54
1311
转载 Flux 和 Mono 、reactor实战 + ServerWebExchange
响应式编程用的是越来越多,尤其是在移动端 安卓的应用上边。在Java后台服务开发中, 响应式编程用的不是太广泛,主要原因是, 响应式编程需要一个完整的生态, 包括数据库、缓存、中间件,都需要配套的响应式组件。但是这点,其实很多并没有。但是,随着 SpringCloud Gateway 的火爆, 响应式编程又变成了 不可回避, 不得不去学习的技术。如果要做 SpringCloud Gateway 的开发, 就必须掌握一些响应式编程的知识。把响应式编程Flux 和 Mono 的知识梳理一下,形成了此文。
2024-07-16 16:47:57
195
转载 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
305
原创 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
693
原创 Request流只能读取一次的问题
每次调用后的getInputStream方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一致存在。使用Filter过滤器,在一开始,替换request为自己定义的可以多次读取流的request。这样就实现了流的重复获取。比如:使用了filter或者aop在接口处理之前,获取了request中的数据,对参数进行了校验,那么之后就不能在获取request请求流了。在接口调用链中,request的请求流只能调用一次,处理之后,如果之后还需要用到请求流获取数据,就会发现数据为空。
2024-06-27 09:46:42
578
转载 @ConditionalOnXXXXX条件注解
首先看matchIfMissing属性,用来指定如果配置文件中未进行对应属性配置时的默认处理:默认情况下matchIfMissing为false,也就是说如果未进行属性配置,则自动配置不生效。简单来讲,一般是在配置类上或者是@Bean修饰的方法上,添加此注解表示一个类是否要被Spring上下文加载,若满足条件则加载,若不满足条件则不加载。如:http编码的自动配置类中,当配置文件中没有配置spring.http.encoding.enabled,自动配置仍然会生效。
2024-06-21 12:52:47
2539
原创 MAVEN-SNAPSHOT和RELEASE + 打包到远程仓库
RELEASE版本和SNAPSHOT是相对的,⾮SANPSHOT版本即RELEASE版本,RELEASE版本是⼀个稳定的版本号,看清楚咯,是⼀个,不是⼀系列,可以认为RELEASE版本是不可变化的,⼀旦发布,即永远不会变化。虽然RELEASE版本是稳定不变的,但是仓库还是有策略让这个原则变得可配置,有的仓库会配置成redeploy覆盖,这样RELEASE版本就变成SNAPSHOT了,伪装成RELEASE的SNAPSHOT,会让问题更费解和棘⼿,我⼀般称这类⼈为“挖坑专家”。
2024-06-12 17:07:46
3242
转载 RestTemplate之java.io.IOException:stream closed 异常的原因及处理
我尝试了一次,把该代码注释掉,果然不出所料,是这里的原因,那么接下来就是如何解决流只能读取一次的问题,上网搜索了一番,网上好多人解决都是说用包装类可以解决该问题,将该对象缓存下来,就不会有问题,这也就是Servlet中Fileter的实现,Filter调用链如果不包装,也可能会出现该问题。解决方案:怀疑是我加了拦截器的原因,我把拦截器注释掉,则不会报该错误,思考:为啥加了拦截器就会报错呢?springboot集成resttemplate时想打印相关请求日志,设置统一的拦截器。
2024-05-20 11:08:35
268
原创 有状态和无状态登录
传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。
2024-04-26 08:53:50
393
原创 AOP动态修改注解值及异步子线程请求头丢失问题
4、多线程之--主线程结束,子线程无法获取主线程请求头信息 解决方案(实现ttl这个方式存当前请求的信息,然后去拿)1、动态注入参数:通过AOP注解占位符,匹配目标方法参数,可用于日志记录等场景。2、spel表达式匹配目标方法的参数进行动态入参。3、Java没有提供直接设置线程的上下文的对象。
2024-04-18 22:36:30
348
1
原创 maven问题汇总
其中url写成实际的地址:例如:http://hub.byd.com:9081/repository/maven-xxx-snapshot/
2024-04-17 19:35:13
1120
原创 芋道框架讲解
官方文档: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
3023
转载 SpringBoot之自定义starter
SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。
2024-04-16 10:32:33
252
转载 Springboot之Jasypt配置文件加密/解密
前言在大多数项目中,配置文件中的 mysql 数据库密码、redis 密码等其他敏感性密码都是以明文形式存在,这种配置本身没有任何问题,但是,在某些情况下,可能会对公司造成不可挽救的损失,比如:某一天,小明因为加班过度,头脑发昏,不小心把公司项目上传到自己的 GitHub 仓库里面了,导致的后果就是,公司数据库用户名密码泄露,被某些大佬加以利用…所以,基于上面这种情况,加入配置文件中数据库用户密码等其他敏感信息都是经过加密处理过的呢???是不是可以大概率避免这种情况。Jasypt 因此应运而生。
2024-04-16 09:26:21
9113
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人