
Spring八股
文章平均质量分 88
sjsjsbbsbsn
这个作者很懒,什么都没留下…
展开
-
RocketMQ事务消息原理
RocketMQ的事务消息是一种确保消息与本地事务一致性的机制,广泛应用于分布式系统中,尤其是需要保证跨服务数据一致性的场景。其核心原理是在生产者发送消息到Broker时,先发送一个“半消息”,然后生产者执行本地事务。如果事务成功,生产者会发送提交(Commit)请求,Broker将半消息标记为正常消息;若失败,则发送回滚(Rollback)请求,Broker丢弃该消息。如果生产者未及时确认,Broker会进行事务回查,确保消息的一致性处理。通过这种机制,RocketMQ提供了一种可靠的方式来保证消息的投递原创 2025-02-22 10:16:59 · 865 阅读 · 0 评论 -
Spring Boot定时任务原理
在现代应用中,定时任务的调度是实现周期性操作的关键机制。Spring Boot 提供了强大的定时任务支持,通过注解驱动的方式,开发者可以轻松地为方法添加定时任务功能。本文将深入探讨 Spring Boot 中定时任务的实现原理,重点分析和的作用,以及任务如何被注册和执行。我们还将详细介绍底层使用的线程池调度器和 Java 内置的,它们如何协同工作,保证定时任务的准确执行。此外,我们还将探讨任务调度的线程阻塞与唤醒机制,深入剖析延迟队列()如何有效管理任务的执行顺序。原创 2025-02-22 10:15:35 · 2048 阅读 · 0 评论 -
SpringBoot内置Tomcat启动原理
Spring Boot内置Tomcat的启动原理是基于Spring Boot自动配置和嵌入式容器的概念。Spring Boot提供了嵌入式的Tomcat容器,使得开发者无需手动配置和部署外部的Web服务器。Spring Boot的核心启动类是SpringApplication,它会自动初始化并启动一个内嵌的Tomcat容器。具体来说,当Spring Boot应用启动时,SpringApplication.run()方法会被调用,内部会创建一个SpringApplication实例,并执行一系列初始化工原创 2025-01-26 10:40:24 · 1010 阅读 · 0 评论 -
为什么SpringBoot的jar包可以直接运行
Fat Jar 打包插件将所有依赖打包到单个 Jar 中。自定义类加载器创建类加载器加载依赖。启动逻辑:通过清单文件中的指定用户主类,并反射调用其main方法。插件将所有依赖打包到单个 Jar 中。创建类加载器加载依赖。3. **启动逻辑**:通过清单文件中的指定用户主类,并反射调用其main` 方法。这种机制让开发者无需关心依赖管理和类加载细节,可以专注于业务开发,提升了应用的可移植性和启动效率。原创 2025-01-25 14:17:49 · 698 阅读 · 0 评论 -
Spring是如何解决循环依赖的为什么需要三级缓存二级缓存不行吗如何避免在并发条件下拿到不完整的Bean
构造器注入无法解决任何情况下的循环依赖问题。属性注入和 Setter 注入单例-单例:支持循环依赖,Spring 使用三级缓存(单例池、二级缓存、三级缓存)可以解决。单例-原型、原型-原型、原型-单例:均不支持,因为原型作用域的 Bean 每次都会重新创建,无法缓存引用,也无法通过提前暴露引用解决循环依赖问题。单例与原型混合依赖问题单例依赖原型,原型反过来依赖单例时,循环依赖无法解决。解决循环依赖的建议避免构造器注入,优先使用属性注入或 Setter 注入。使用@Lazy。原创 2025-01-25 09:58:28 · 1202 阅读 · 0 评论