- 博客(94)
- 收藏
- 关注
原创 seata源码分析(04)_TM开启全局事务
TM使用GlobalTransactionalInterceptorHandler拦截被@GlobalTransactional和@GlobalLock标注的全局事务方法,本文将详细分析这个类,以及对应的seata-server开启事务的逻辑。
2024-06-12 19:36:43
591
原创 seata源码分析(03)_创建代理的过程
seata提供了ProxyUtil工具类为事务组件创建代理对象,在spring环境中,seata提供了GlobalTransactionScanner类和SeataAutoDataSourceProxyCreator为组件创建AOP代理,本文重点分析这两个类。
2024-05-31 13:59:50
545
原创 zookeeper源码(09)follower处理客户端请求
在zookeeper中,follower也可以接收客户端连接,处理客户端请求,本文将分析follower处理客户端请求的流程
2024-02-26 08:35:10
1213
原创 zookeeper源码(08)请求处理及数据读写流程
本文通过阅读zookeeper源码,分析leader、follower、observer处理请求的流程
2024-02-19 10:38:51
1291
原创 zookeeper源码(07)leader、follower和observer
本文分析zookeeper中leader、follower的核心工作流程
2024-01-30 13:04:10
1350
1
原创 zookeeper源码(06)ZooKeeperServer及子类
/ 通过zkDb从dataTree中删除Watcher监听器// 创建zkDb(为null时)并loadData加载数据// 加载数据、清理session、生成快照// 保存zkDb当前快照// 从指定的输入流解析数据,生成新的zkDb和SessionTrack// 使用zkDb.truncateLog(zxid)删除快照数据// 通过zkDb获取dataTree.lastProcessedZxid的值// 提交closeSession类型的Request来关闭会话。
2024-01-22 12:17:41
1274
原创 zookeeper源码(03)启动流程
本文将从启动类开始详细分析zookeeper的启动流程:1. 加载配置的过程;2. 集群启动过程;3. 单机版启动过程
2023-10-30 12:55:07
1218
1
原创 Nacos源码 (7) Nacos与Spring
SpringCloud工程可以使用Nacos作为注册中心和配置中心,配置和使用非常简单,本文将简单介绍使用方式,并分析其实现方式。
2023-10-16 10:34:59
314
原创 Nacos源码 (6) Grpc概述与Nacos集成
Nacos 2.x版本增加了GRPC服务接口和客户端,极大的提升了Nacos的性能,本文将简单介绍grpc-java的使用方式以及Nacos中集成GRPC的方式
2023-09-18 11:50:49
2024
原创 Nacos源码 (5) Grpc服务端和客户端
Nacos 2.x在服务端与客户端直接增加了GRPC通信方式,本文通过2.0.2版本源码,简单分析GRPC通信方式:1.服务器启动,2.客户端连接;3.客户端心跳;4.服务器监控检查
2023-09-04 10:51:40
748
原创 Nacos源码 (3) 注册中心
本文将从一个服务注册示例入手,通过阅读2.0.2的版本nacos客户端、服务端源码,分析服务注册、服务发现原理。
2023-08-14 08:51:14
436
原创 spring启动流程 (6完结) springmvc启动流程
SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。SpringMVC将大部分启动逻辑封装在了抽象WebApplicationInitializer中。本文将详细分析ServletContainerInitializer、SpringServletContainerInitializer和WebApplicationInitializer的工作流程。
2023-07-26 09:39:42
2366
原创 spring启动流程 (5) Autowired原理
本文将介绍三者Autowire:1. 构造方法参数Autowire、2. 字段和setter方法参数Autowire、3. @Bean方法参数Autowire
2023-07-17 12:10:54
327
原创 spring启动流程 (4) FactoryBean详解
实现类对象将被用作创建Bean实例的工厂,即调用getObject()方法返回的对象才是真正要使用的Bean实例,而不是直接将FactoryBean对象作为暴露的Bean实例,本文将简单介绍其实现方式。
2023-07-11 09:14:11
193
原创 spring启动流程 (3) BeanDefinition详解
BeanDefinition在Spring初始化阶段保存Bean的元数据信息,包括Class名称、Scope、构造方法参数、属性值等信息,本文将介绍一下BeanDefinition接口、重要的实现类,以及在Spring中的使用示例。
2023-07-04 08:17:23
904
原创 spring启动流程 (2) Bean实例化流程
Spring Bean实例化入口在AbstractApplicationContext类的finishBeanFactoryInitialization方法,本文将重点分析Bean实例化流程。
2023-07-02 14:55:36
197
原创 springboot启动流程 (3) 自动装配
在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。本文将详细分析该注解的工作流程。
2023-06-21 12:11:27
794
原创 springboot启动流程 (2) 组件扫描
SpringBoot的组件扫描是基于Spring @ComponentScan注解实现的,该注解使用basePackages和basePackageClasses配置扫描的包,如果未配置这两个参数,Spring将扫描该配置类所属包下面的组件
2023-06-19 08:54:13
1325
原创 springboot启动流程 (1) 流程概览
本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍)。本文不会对各个流程做展开分析,后续会有文章介绍详细流程。
2023-06-15 09:00:39
835
原创 spring-transaction源码分析(5)TransactionInterceptor事务拦截逻辑
spring-tx的事务拦截逻辑在TransactionInterceptor类,本文将详细分析其实现方式。
2023-05-25 08:20:29
1174
原创 spring-transaction源码分析(4)AspectJ和spring-aspects模块
AspectJ是Java语言实现的一个面向切面编程的扩展库,能够基于一定的语法编写Aspect代码,使用ajc编译器将其编译成.class文件,之后在Java程序编写或加载时将Aspect逻辑嵌入到指定的切面。
2023-05-16 12:00:10
682
原创 spring-transaction源码分析(3)Transactional事务失效原因
在Transactional方法中使用this方式调用另一个Transactional方法时,拦截器无法拦截到被调用方法,严重时会使事务失效。
2023-05-11 09:50:09
434
原创 spring-transaction源码分析(2)EnableTransactionManagement注解
EnableTransactionManagement注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理。本文将详细介绍该注解的属性。
2023-05-06 10:22:15
732
原创 spring-transaction源码分析(1)概述和事务传播级别
spring-tx包使用注解驱动和AOP通知将事务开启、提交/回滚、以及复杂的传播机制封装了起来,开发者不再需要编写事务管理的代码,而是可以只关注自己的业务逻辑。本文将简单介绍spring-tx使用步骤以及七种事务传播级别。
2023-04-28 12:18:24
972
原创 Spring @Import注解源码分析
Import注解指示导入一个或多个组件类,可以是@Configuration、ImportSelector、ImportBeanDefinitionRegistrar或者其他常规组件。本文将通过阅读源码,分析Import注解的工作流程。
2023-04-14 12:57:53
289
原创 Spring AOP源码分析(深入原理)创建通知、切面匹配与创建代理
在之前的三篇文章中已经梳理了spring aop的核心内容:1. AnnotationAwareAspectJAutoProxyCreator的注入;2. AnnotationAwareAspectJAutoProxyCreator获取Advisor集、bean匹配、创建代理等;3. 切面拦截器的执行流程;但是由于时间和个人水平限制,有几个内容记录的不是很详细,比如:- 事件通知何时创建;- cglib代理的原理;- Pointcut如何匹配;本文将继续阅读spring aop源码,并结
2023-03-27 13:48:01
418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人