spring事务源码深度解析?

网友投稿 165 2023-12-11


怎么阅读Spring源码

1、阅读SpringCloudOpenFeign源码的方法有很多,这里提供一种方法:首先,需要了解SpringCloudOpenFeign的基本原理和功能。可以通过阅读官方文档和相关博客来了解。其次,需要下载SpringCloudOpenFeign的源码。

2、探究每一个核心的实现细节(UML图、跑单元测试用例、DEBUG,体悟)以上,仅为我自己阅读源码的方式。

3、项目结构:查看项目的文件结构,通常在项目的根目录下可以找到源代码文件夹(如 `src/main/java`),在该文件夹中可以查看项目的源代码结构。

4、下载Spring源码:首先打开git shell,切换到你的工作目录,然后输入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,后面一串是源码下载地址。

spring—AOP与事务

PlatformTransactionManager是Spring中的事务管理接口,具体如下:DataSourceTransactionManager Spring中JDBC事务管理实现类是DataSourceTransactionManager,所以我们使用MyBatis时,如果需要进行事务管理则配置该事务管理即可。

切面由切点和增强(引介)组成,它既包括了横切逻辑的定义,也包括了连接点的定义,Spring AOP就是负责实施切面的框架,它将切面所定义的横切逻辑织入到切面所指定的连接点中。

mode:指定Spring事务管理框架创建通知bean的方式。可用的值有proxy和aspectj。前者是默认值,表示通知对象是个JDK代理;后者表示Spring AOP会使用AspectJ创建代理。order:指定创建的切面的顺序。

Spring中的事务传播属性详解

传播属性为 SUPPORTS,如果没有事务,就以非事务的方式运行。表明两个方法都没有使用事务,没有事务的话,ab1 都添加成功。示例4 :mainTest 添加事务,设置传播属性为 REQUIRED。

Spring中通过Propagation来设置事务的传播属性的,在这个属性中提供了我们其中关于事务传播的特性: PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

Spring事务传播机制就是解决这个问题的,Spring提供了7个传播属性。默认的传播属性是REQUIRED,也是最常用的。

答案当然是一本都买不到,因为 @Transactional 注解 ,默认事务的传播属性是:REQUIRED,即业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。

深入理解:required 属性表达了被标识的参数或方法是必须要存在的,否则就会报错。类似地Spring mvc 中 @required String name。

Spring事件监听机制源码解析

Spring事件监听体系包括三个组件:事件、事件监听器,事件广播器。事件:定义事件类型和事件源,需要继承ApplicationEvent。

在这里是还没有启动所有的监听程序。RabbitListenerEndpointRegistry对象Bean实现了SmartLifecycle接口,所以容器上下文执行完(刷新完)以后会调用实现了该接口的会滴方法start,启动消息监听。

SpringBoot开始启动时便会发布 ApplicationStartingEvent 事件,其发布时机在环境变量Environment或容器ApplicationContext创建前但在注册 ApplicationListener 具体监听器之后,标志标志 SpringApplication 开始启动。

Runtime.getRuntime().addShutdownHook() 可以添加自定义的shutdown hook。关于jvm关闭详细的原理分析过程请参考 java进程关闭事件监听 spring在启动过程中也是通过 Runtime.getRuntime().addShutdownHook() 来注册hook回调。

Spring 中事件机制中各角色:如下图所示是 Spring 中所有的事件继承关系类图:其中常用的事件有:这边我们以 ContextRefreshedEvent 为例来介绍一下 Spring 事件发布的流程。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ssm框架跟vue哪个好学(ssm框架和vue)
下一篇:当贝市场电视版安装包?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~