随笔分类 -  spring源码分析

spring源码分析
摘要:SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContex 阅读全文
posted @ 2023-07-26 09:43 用户不存在! 阅读(834) 评论(0) 推荐(0) 编辑
摘要:# 构造方法参数Autowire - BeanClass可以在构造方法上标注@Autowired注解,Spring在创建Bean实例时将自动为其注入依赖参数 - Spring会优先使用标注@Autowired注解的构造方法 - 当一个构造方法标注了@Autowired注解且required=true 阅读全文
posted @ 2023-07-17 12:14 用户不存在! 阅读(213) 评论(0) 推荐(1) 编辑
摘要:# FactoryBean接口 实现类对象将被用作创建Bean实例的工厂,即调用getObject()方法返回的对象才是真正要使用的Bean实例,而不是直接将FactoryBean对象作为暴露的Bean实例。 FactoryBeans可以支持singleton和prototype,并且可以根据需要懒 阅读全文
posted @ 2023-07-11 09:16 用户不存在! 阅读(128) 评论(1) 推荐(0) 编辑
摘要:BeanDefinition在Spring初始化阶段保存Bean的元数据信息,包括Class名称、Scope、构造方法参数、属性值等信息,本文将介绍一下BeanDefinition接口、重要的实现类,以及在Spring中的使用示例。 # BeanDefinition接口 用于描述了一个Bean实例, 阅读全文
posted @ 2023-07-04 08:18 用户不存在! 阅读(135) 评论(0) 推荐(0) 编辑
摘要:本文通过阅读Spring源码,分析Bean实例化流程。 # Bean实例化入口 上一篇文章已经介绍,Bean实例化入口在AbstractApplicationContext类的finishBeanFactoryInitialization方法: ```java protected void fini 阅读全文
posted @ 2023-07-02 14:58 用户不存在! 阅读(82) 评论(0) 推荐(0) 编辑
摘要:本文将通过阅读AnnotationConfigApplicationContext源码,分析Spring启动流程。 # 创建AnnotationConfigApplicationContext ```java AnnotationConfigApplicationContext applicatio 阅读全文
posted @ 2023-06-26 16:43 用户不存在! 阅读(133) 评论(0) 推荐(0) 编辑
摘要:在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。 本文将详细分析该注解的工作流程。 # EnableAutoConfiguration注解 启用SpringBoot自动装配功能,尝试猜测和配置可能需要的组件Bean。 自动装配类通常是根据类路径和定义 阅读全文
posted @ 2023-06-21 12:14 用户不存在! 阅读(142) 评论(0) 推荐(0) 编辑
摘要:SpringBoot的组件扫描是基于Spring @ComponentScan注解实现的,该注解使用basePackages和basePackageClasses配置扫描的包,如果未配置这两个参数,Spring将扫描该配置类所属包下面的组件。 在服务启动时,将使用ConfigurationClass 阅读全文
posted @ 2023-06-19 08:55 用户不存在! 阅读(285) 评论(0) 推荐(0) 编辑
摘要:本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍)。 本文不会对各个流程做展开分析,后续会有文章介绍详细流程。 # SpringApplication类 ## 应用启动入口 使用以下方式启动一个SpringBoot应用: ```java @S 阅读全文
posted @ 2023-06-15 09:05 用户不存在! 阅读(113) 评论(0) 推荐(0) 编辑
摘要:spring-tx的事务拦截逻辑在TransactionInterceptor类,本文将详细分析其实现方式。 # 事务拦截器TransactionInterceptor spring-tx的事务拦截逻辑在TransactionInterceptor类,它实现了MethodInterceptor接口。 阅读全文
posted @ 2023-05-25 08:22 用户不存在! 阅读(178) 评论(0) 推荐(0) 编辑
摘要:AspectJ是Java语言实现的一个面向切面编程的扩展库,能够基于一定的语法编写Aspect代码,使用ajc编译器将其编译成.class文件,之后在Java程序编写或加载时将Aspect逻辑嵌入到指定的切面。 安装AspectJ 下载AspectJ 到官网下载安装包: http://www.ecl 阅读全文
posted @ 2023-05-16 12:03 用户不存在! 阅读(173) 评论(0) 推荐(0) 编辑
摘要:问题概述 在Transactional方法中使用this方式调用另一个Transactional方法时,拦截器无法拦截到被调用方法,严重时会使事务失效。 类似以下代码: @Transactional public void insertBlogList(List<Blog> blogList) { 阅读全文
posted @ 2023-05-11 09:54 用户不存在! 阅读(120) 评论(0) 推荐(0) 编辑
摘要:概述(Java doc) 该注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理。 @Configuration @EnableTransactionManagement public class AppConfig { @B 阅读全文
posted @ 2023-05-06 12:14 用户不存在! 阅读(150) 评论(0) 推荐(0) 编辑
摘要:spring-tx概述 spring-tx包使用注解驱动和AOP通知将事务开启、提交/回滚、以及复杂的传播机制封装了起来,开发者不再需要编写事务管理的代码,而是可以只关注自己的业务逻辑。 本文将简单介绍spring-tx使用步骤以及七种事务传播级别。 后续文章会阅读源码,深入分析spring-tx 阅读全文
posted @ 2023-05-06 10:33 用户不存在! 阅读(115) 评论(0) 推荐(0) 编辑

顶部
点击右上角即可分享
微信分享提示