Spring源码debug方法

Spring容器的工作原理概述

Spring会先注册Bean的BeanDefinition到容器;

根据BeanDefinition创建Bean实例 ,创建过程中会对bean进行初始化、根据情况对bean进行增强返回代理对象等

(1)什么时候注册BeanDefinition

可以在· DefaultListableBeanFactory#registerBeanDefinition中加**"条件断点"** - beanName.equals("????") ,查看???的BeanDefinition什么时候注册到容器中。

(1.2)什么时候创建实例

AbstractAutowireCapableBeanFactory#doCreateBean方法中加**"条件断点"** - beanName.equals("????") ,查看???的Bean实例是什么时创建的。

对bean实例进行赋值、初始化、增强等都在这个方法里。

(1.3)什么时候@Value

将@Value("${??}")中的??设置为错误的属性,让其报异常,然后查看异常的调用栈,给对应的方法上打上断点

(1.4)什么时候@Autowire

让@Autowire的属性或方法参数没有对应的值,让其报异常,然后查看异常的调用栈,给对应的方法上打上断点

相关推荐
無限進步D18 小时前
Java 运行原理
java·开发语言·入门
難釋懷18 小时前
安装Canal
java
是苏浙18 小时前
JDK17新增特性
java·开发语言
不光头强18 小时前
spring cloud知识总结
后端·spring·spring cloud
GetcharZp21 小时前
告别 Python 依赖!用 LangChainGo 打造高性能大模型应用,Go 程序员必看!
后端
阿里加多21 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood21 小时前
java中`==`和`.equals()`区别
java·开发语言·python
小小李程序员21 小时前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai