摘要:
BeanDefinition在Spring初始化阶段保存Bean的元数据信息,包括Class名称、Scope、构造方法参数、属性值等信息,本文将介绍一下BeanDefinition接口、重要的实现类,以及在Spring中的使用示例。 # BeanDefinition接口 用于描述了一个Bean实例, 阅读全文
摘要:
本文通过阅读Spring源码,分析Bean实例化流程。 # Bean实例化入口 上一篇文章已经介绍,Bean实例化入口在AbstractApplicationContext类的finishBeanFactoryInitialization方法: ```java protected void fini 阅读全文
摘要:
本文将通过阅读AnnotationConfigApplicationContext源码,分析Spring启动流程。 # 创建AnnotationConfigApplicationContext ```java AnnotationConfigApplicationContext applicatio 阅读全文
摘要:
在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。 本文将详细分析该注解的工作流程。 # EnableAutoConfiguration注解 启用SpringBoot自动装配功能,尝试猜测和配置可能需要的组件Bean。 自动装配类通常是根据类路径和定义 阅读全文
摘要:
SpringBoot的组件扫描是基于Spring @ComponentScan注解实现的,该注解使用basePackages和basePackageClasses配置扫描的包,如果未配置这两个参数,Spring将扫描该配置类所属包下面的组件。 在服务启动时,将使用ConfigurationClass 阅读全文
摘要:
本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍)。 本文不会对各个流程做展开分析,后续会有文章介绍详细流程。 # SpringApplication类 ## 应用启动入口 使用以下方式启动一个SpringBoot应用: ```java @S 阅读全文
摘要:
spring-tx的事务拦截逻辑在TransactionInterceptor类,本文将详细分析其实现方式。 # 事务拦截器TransactionInterceptor spring-tx的事务拦截逻辑在TransactionInterceptor类,它实现了MethodInterceptor接口。 阅读全文
摘要:
AspectJ是Java语言实现的一个面向切面编程的扩展库,能够基于一定的语法编写Aspect代码,使用ajc编译器将其编译成.class文件,之后在Java程序编写或加载时将Aspect逻辑嵌入到指定的切面。 安装AspectJ 下载AspectJ 到官网下载安装包: http://www.ecl 阅读全文
摘要:
问题概述 在Transactional方法中使用this方式调用另一个Transactional方法时,拦截器无法拦截到被调用方法,严重时会使事务失效。 类似以下代码: @Transactional public void insertBlogList(List<Blog> blogList) { 阅读全文
摘要:
概述(Java doc) 该注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理。 @Configuration @EnableTransactionManagement public class AppConfig { @B 阅读全文