自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 在Spring Boot与MyBatis的整合过程中,MyBatis的自动装配过程

Spring Boot与MyBatis的整合,主要依赖于Spring Boot的自动配置机制和起步依赖。通过引入相应的起步依赖,并在配置文件中进行必要的配置,就可以实现MyBatis的自动装配和配置。这种方式极大地简化了Spring应用的开发和部署过程。

2024-07-13 17:30:55 145

原创 SpringBoot自动装配原理

Spring Boot的自动装配原理通过条件注解、自动配置类和Starter依赖等机制,根据条件判断和优先级规则来自动配置和装配应用程序所需的组件。这种方式简化了配置过程,提高了开发效率,同时也保留了灵活性,允许开发者进行自定义配置。

2024-07-13 17:22:05 482

原创 SpringBoot内嵌tomcat原理

Spring Boot内嵌Tomcat的过程是一个高度自动化的过程,它通过依赖管理、自动配置、创建和配置Tomcat Server、启动Tomcat Server以及处理请求等步骤,实现了Spring应用的快速部署和简化管理。这种方式不仅简化了开发者的部署工作,还提高了应用的启动速度和运行效率。

2024-07-13 17:19:04 166

原创 Spring事务原理

Spring事务通过封装数据库的事务支持,为开发者提供了一套简便的事务管理机制。无论是编程式事务还是声明式事务,Spring都通过其核心接口和类,以及事务的传播属性和隔离级别等特性,实现了对事务的灵活管理和控制。

2024-07-13 17:07:07 525

原创 JDK动态代理和CGLIB代理的区别

JDK动态代理和CGLIB代理各有优缺点,开发人员应根据具体需求选择适合的代理模式。在大多数情况下,如果目标类已经实现了接口,建议使用JDK动态代理;如果目标类没有实现接口或者需要代理final类和方法,则可以考虑使用CGLIB代理。

2024-07-13 16:56:13 245

原创 Spring AOP详解

Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个关键特性,它提供了一种强大的机制来模块化横切关注点。横切关注点是指那些跨越应用程序多个模块的功能,如日志记录、事务管理、安全性等。通过AOP,这些横切关注点可以被封装成切面(Aspect),并在不修改原有业务代码的前提下,将它们应用到目标对象上。

2024-07-13 16:53:35 214

原创 Spring中工厂模式的具体体现

在Spring框架中,IoC(控制反转)的实现与工厂模式紧密相连。

2024-07-13 12:41:08 220

原创 Spring IOC详解

Spring框架的IoC原理通过将对象的创建、管理、生命周期等控制权从应用程序代码中转移到外部容器(如Spring容器)中,实现了依赖关系的动态注入和管理。这种设计思想降低了对象之间的耦合度,提高了应用程序的灵活性和可测试性。同时,IoC的实现机制基于工厂模式和反射机制,使得Spring容器能够灵活地创建和配置应用程序中的所有对象。

2024-07-13 12:40:16 473

原创 RabbitMQ,Kafka,RocketMQ的区别和选择

Kafka是一款分布式、支持分区的、多副本的,基于ZooKeeper协调的分布式消息系统。它最大的特性是可以实时处理大量数据来满足需求。Kafka广泛应用于日志收集、消息系统、用户活动追踪、运营指标监控等场景。

2024-07-12 16:10:49 547

原创 MySQL锁详解

MySQL中的锁是数据库管理系统提供的一种机制,用于控制并发访问时的数据访问权限,确保数据的一致性、完整性和并发性。

2024-07-12 15:46:44 227

原创 MySQL事务原理详解

Redo log(重做日志)是InnoDB存储引擎特有的,用于确保事务的持久性。它记录了可能对数据页(在内存中的数据)进行修改的所有操作。即使数据库发生故障,使用Redo log也可以保证数据不会丢失。

2024-07-12 15:17:49 522

原创 MySQL事务隔离级别的原理详解

读未提交(Read Uncommitted):最低级别,允许一个事务读取另一个事务尚未提交的数据。这可能导致脏读、不可重复读和幻读的问题。读已提交(Read Committed):允许一个事务只读取其他已提交事务的数据。这可以避免脏读,但仍可能出现不可重复读和幻读的问题。可重复读(Repeatable Read):MySQL的默认隔离级别。在一个事务中,多次读取同一数据会得到相同的结果,即使其他事务对该数据进行了修改。这可以避免脏读和不可重复读,但可能出现幻读问题。串行化(Serializable)

2024-07-12 15:10:11 434

原创 详解MySQL的MVCC机制

MVCC是一种并发控制的方法,主要在数据库管理系统中使用,用于实现对数据库的并发访问。在MySQL中,特别是InnoDB存储引擎,MVCC被广泛应用。它允许事务在读取数据时不必加锁,从而避免了读写操作之间的冲突,提高了数据库的并发性能。MySQL中的MVCC是一种高效的并发控制技术,它通过维护数据的多个版本来实现非阻塞的并发读,从而提高了数据库的并发性能。MVCC的工作原理基于隐藏字段、undo日志和Read View等关键组件,通过可见性规则来确定哪些版本的数据对当前事务是可见的。

2024-07-12 14:31:41 183

原创 ConcurrentHashMap为什么要同时使用CAS和synchronized

在ConcurrentHashMap中,尽管操作是一种非常高效的并发控制手段,用于实现无锁的线程安全操作,但仍然存在一些情况下需要使用关键字。这主要是因为CAS和各有其适用场景和局限性,二者在ConcurrentHashMap中的结合使用能够更全面地保证线程安全和优化性能。

2024-07-12 11:20:16 311

原创 详解RabbitMQ保证消息可靠性

② 消费确认:消费者在处理完消息后,向 RabbitMQ 发送确认信号,表明消息已被成功处理。消息持久化是指将消息存储在磁盘上,以防止消息在 RabbitMQ 节点重启或崩溃时丢失。① 持久化队列:队列可以标记为持久化,确保队列在 RabbitMQ 重启后仍然存在。② 持久化消息:消息可以标记为持久化,确保消息在队列中存储时不会丢失。① 发布确认:生产者可以使用发布确认模式来确保消息已成功写入队列。消息确认机制确保消息在被成功处理后才从队列中删除。

2024-07-09 15:20:45 96

空空如也

空空如也

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

TA关注的人

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