
java
文章平均质量分 72
坚定信念,勇往无前
这个作者很懒,什么都没留下…
展开
-
mybatisplus加行锁
/ 使用 LambdaQueryWrapper 构建查询条件并加锁。原创 2025-03-25 10:41:18 · 145 阅读 · 0 评论 -
java内存泄露终结者:jmap + MAT 组合拳
内存泄露是 Java 开发中常见的性能问题,它会导致应用程序内存使用量不断增长,最终引发 OutOfMemoryError 错误,导致服务崩溃。本文将介绍如何使用 jmap 和 MAT 工具来分析和定位内存泄露问题。jmap 和 MAT 是分析 Java 内存泄露问题的利器。通过生成 heap dump 文件,并使用 MAT 进行分析,我们可以快速定位内存泄露的根源,并修复代码问题。希望这篇文章能够帮助你更好地理解和解决 Java 内存泄露问题!原创 2025-02-26 10:06:29 · 495 阅读 · 0 评论 -
五种Web消息推送常用技术
• SSE(Server - Sent Events):基于HTTP协议,服务器向客户端推送事件,客户端通过EventSource接收实时数据,数据流仅从服务器到客户端,适用于不需要客户端反馈的场景,连接中断时浏览器会自动尝试重新连接服务器。• 长轮询:客户端向服务器发送请求后,服务器不会立即响应,而是保持连接直到有新数据需要推送,依赖HTTP持久连接(Keep - Alive)和超时机制。• 短轮询:客户端定期向服务器发送请求询问有无新数据,每次请求后,无论有无数据,服务器都快速响应并关闭连接。原创 2025-02-25 09:10:10 · 197 阅读 · 0 评论 -
SpringBoot如何做线程池优化与线程池隔离呢
优化关键:根据业务类型(CPU/IO密集型)调整参数,合理设置拒绝策略,持续监控。隔离策略:通过多线程池划分资源边界,结合熔断机制增强容错能力。工具推荐:Micrometer监控指标,Arthas在线诊断线程池问题。通过合理配置和隔离,可显著提升系统的吞吐量和稳定性。原创 2025-02-25 09:05:46 · 446 阅读 · 0 评论 -
Spring可以这样推送消息到客户端!
SseEmitter是Spring Framework中用于服务器发送事件(Server-Sent Events, SSE)的类。SSE是一种允许服务器主动向客户端推送数据的技术,通常用于实现如实时通知、数据流等功能。其工作原理基于HTTP协议,客户端通过HTTP请求订阅服务器的事件流,服务器则通过SseEmitter对象持续向客户端发送事件。SseEmitter的核心特性单向通信:SSE是单向的,只允许服务器向客户端推送数据,客户端不能通过此通道向服务器发送数据。原创 2025-02-25 09:03:46 · 258 阅读 · 0 评论 -
高并发线程池7条拒绝对策
Override// 启动异步重试线程while (!try {});适用场景:支付订单、交易流水等不可丢失任务“线程池拒绝策略的本质,是在系统稳定性与业务完整性之间寻找平衡点。你在生产环境中遇到过最奇葩的线程池问题是什么?评论区吐槽!原创 2025-02-24 15:34:56 · 890 阅读 · 0 评论 -
解决idea一个非常坑的问题
我发现直接重启idea还不好使,这样按上面的菜单方式操作才能真正清除缓存,点击之后,发现maven开始进度加载了。这大概就是idea的bug,pom没有刷新,按理来说直接 点击reload maven 就好了,但是实际情况,很多时候没有用的。后来查阅了很多资料,终于发现idea还留了一手,可以通过 invalidate cache来解决,中文的意思是缓存失效。这个包,竟然飘红了。我clean了好几次没有效果。dea中经常会遇到这样问题,明明maven的pom中已经添加了依赖,总是提示jar包找不到,原创 2025-02-24 08:45:46 · 514 阅读 · 0 评论 -
java高级技术人员要掌握哪些技术
大厂对高级Java工程师的要求不仅是技术深度,更看重复杂场景的实战经验和技术判断力。建议通过开源项目贡献(如Apache项目)、技术博客输出、内部系统重构案例积累差异化竞争力。原创 2025-02-24 08:39:43 · 1064 阅读 · 0 评论 -
Spring Boot中整合Flink CDC
在上面介绍中,我们介绍了如何在Spring Boot中整合Flink CDC来实现数据库数据变化的实时捕获监听操作,在实际实现中,我们可以根据具体的业务需求对操作进行进一步的扩展,例如可以将CDC数据写入Kafka、Hadoop、Elasticsearch等实时数据平台,构建更强大的数据流处理系统。原创 2025-02-24 08:38:22 · 395 阅读 · 0 评论 -
Spring Boot中整合Flink CDC 数据库变更监听器来实现对MySQL数据库
在上面介绍中,我们介绍了如何在Spring Boot中整合Flink CDC来实现数据库数据变化的实时捕获监听操作,在实际实现中,我们可以根据具体的业务需求对操作进行进一步的扩展,例如可以将CDC数据写入Kafka、Hadoop、Elasticsearch等实时数据平台,构建更强大的数据流处理系统。原创 2025-02-22 09:27:06 · 491 阅读 · 0 评论 -
Spring Boot 如何保证接口安全
Spring Boot如何保证接口安全,需要架构设计、示例代码以及系统逻辑分析。首先,我得考虑常见的接口安全措施,比如身份认证、权限控制、数据加密、防止常见攻击等。然后,要结合Spring Boot的功能来实现这些措施。首先,身份认证,通常用Spring Security或者OAuth2。Spring Security比较基础,适合大部分场景。可能用JWT来做无状态认证,这样适合分布式系统。然后权限控制,可以用基于角色的访问控制(RBAC),或者更细粒度的权限管理。原创 2025-02-22 09:25:04 · 1305 阅读 · 0 评论 -
redis缓存与Mysql数据一致性,要如何解决?
场景推荐方案一致性级别性能影响低频写(商品详情)Cache-Aside + 延迟双删最终一致低高频写(订单状态)Binlog监听 + MQ异步更新最终一致中配置类数据强一致中秒杀库存分布式锁 + 数据库乐观锁强一致高实际应用中,京东这类体量的系统通常会混合多种方案,例如核心交易链路采用Binlog同步+本地缓存,非核心业务用Cache-Aside+MQ,通过精细化设计平衡性能与一致性。原创 2025-02-21 08:52:04 · 1014 阅读 · 0 评论 -
SpringBoot项目启动优化
SpringBoot项目启动从7分钟降到了10秒,如何优化原创 2025-02-21 08:50:06 · 643 阅读 · 0 评论 -
springboot单机支持1w并发,需要做哪些优化
springboot单机支持1w并发,需要做哪些优化 ,springboot优化原创 2025-02-21 08:47:59 · 1703 阅读 · 0 评论 -
mapstruct -新增字段转换无效
二.使用 mapstruct 框架,对于需要映射的实体类,会先自动编译好之后存入 target 目录,而 idea 开发工具的重启并没有清空 target 目录下已经编译好的文件,所以导致新增加的两个字段即使重启项目也没有自动映射。1.使用 maven 自带插件,对项目 clean 一下,然后再重新启动,即可解决此问题。2.删除对应的target目录下生成的文件也可。一.仔细检查映射的字段是否对。原创 2025-01-09 17:09:38 · 217 阅读 · 0 评论 -
springboot 循环依赖in its raw version as part of a circular
比如:我现在有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖。Spring先创建beanC,接着创建bean B(将C注入B中),最后创建bean A(将B注入A中)。当Spring正在加载所有Bean时,Spring尝试以能正常创建Bean的顺序去创建Bean。Bean A 依赖 B,Bean B 依赖 A这种情况下出现循环依赖。更复杂的间接依赖造成的循环依赖如下。原创 2025-01-03 10:46:41 · 395 阅读 · 0 评论 -
satoken和spring security区别
2. **学习曲线**:Sa-Token的学习曲线相对较低,适合需要快速上手的项目。它的集成和配置都非常简单,开箱即用,对于初学者来说是一个容易上手的选择。相比之下,Spring Security的学习曲线中等或较高,因为它提供了丰富的功能和较为复杂的配置选项。3. **功能方面**:Spring Security提供了认证、授权、CSRF保护、会话管理等全面的安全功能。1. **依赖管理**:Sa-Token被描述为一个轻量级的框架,它的依赖较少,易于集成,特别是与Spring生态紧密集成时。原创 2024-11-29 10:52:47 · 421 阅读 · 0 评论 -
Token和JWT的区别
Token和JWT的区别原创 2024-11-29 10:47:28 · 1185 阅读 · 0 评论 -
java-线程ThreadLocal详解
在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。在JDK5.0以后,ThreadLocal已经支持泛型,ThreadLocal类的类名变为ThreadLocal。从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。ThreadLocal 是一个本地线程副本变量工具类。原创 2024-11-28 17:26:27 · 1478 阅读 · 0 评论 -
springboot aop @Pointcut 的 12 种用法
springboot aop @Pointcut 的 12 种用法原创 2024-11-28 16:04:11 · 1667 阅读 · 0 评论 -
springboot-自定义注解
第一步:定义注解第二步:配置注解第三步:解析注解int age();String sex() default "女";注意:自定义注解要用【@interface】在自定义注解中,其实现部分只能定义注解类型元素!说明:a.访问修饰符必须为public,不写默认为public;b.该元素的类型只能是基本数据类型、String、Class、枚举类型、注解类型以及一维数组;c.该元素的名称一般定义为名词,如果注解中只有一个元素,名字起为value最好;原创 2024-11-28 14:49:50 · 2385 阅读 · 0 评论 -
Spring cache注解:缓存与业务解耦实战
Spring cache注解:缓存与业务解耦实战原创 2024-11-28 11:23:08 · 1453 阅读 · 0 评论 -
Spring Events 最新详解(spring4.2前后变化)
Spring Events 最新详解(spring4.2前后变化)原创 2024-11-28 09:46:54 · 986 阅读 · 0 评论 -
@resource可以找到所有实现接口的类并将它们作为列表注入
注释告诉Spring在应用程序上下文中查找与所需类型匹配的任何bean,并将其注入到变量中。将向Spring表明您希望注入类型A的所有bean。在本例中,将该字段指定为。原创 2024-11-22 09:57:47 · 227 阅读 · 0 评论 -
mapStruct详解
MapStruct支持自定义转换器,实现类型之间的转换自定义的规则。一个自定义映射器可以定义多个映射方法,匹配时,是以方法的入参和出参进行匹配的。如果绑定的映射中,存在多个相同的入参和出参方法,将会报错。如果多个入参或者出参方法存在继承关系,将会匹配最具体的那一个方法。原创 2024-11-21 20:33:40 · 1071 阅读 · 0 评论 -
MapStruct 详细使用
通常使用的BeanUtils.copyProperties方法也比较粗暴,不仅效率低下(使用反射)而且仅映射相同名的属性,多数情况下还需要手动编写对应的转换方法实现。SET_TO_NULL默认返回null,SET_TO_DEFAULT返回默认值,IGNORE 忽略该值,以目标对象已存在的值为准。collectionMappingStrategy 集合映射策略,这里注意集合映射时,如果集合中的类型已有对应转换方法,集合转换时会优先使用。cdi,以CDI标准实例化映射器,使用@Inject注入相关实例,原创 2024-11-21 20:05:24 · 691 阅读 · 0 评论 -
JSON parse error: Cannot deserialize value of type `java.util.Date` from String
在。原创 2024-10-18 15:25:32 · 2833 阅读 · 0 评论