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的属性或方法参数没有对应的值,让其报异常,然后查看异常的调用栈,给对应的方法上打上断点

相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8295 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
candyTong6 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
未若君雅裁6 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
GetcharZp7 小时前
GitHub 2.4 万 Star!D2 正在重新定义程序员画图方式
后端
阿维的博客日记7 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI7 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding9 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构