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

相关推荐
杂货铺的小掌柜2 小时前
MAC版IDEA常用快捷键
java·macos·intellij-idea
刘立军2 小时前
本地大模型编程实战(39)MCP实战演练
人工智能·后端·mcp
xjz18422 小时前
JVM虚拟线程:JEP 444开启Java并发编程新纪元
java
JH30732 小时前
Spring Retry 实战:优雅搞定重试需求
java·后端·spring
ZoeGranger2 小时前
【Spring】使用注解开发
后端
哔哩哔哩技术2 小时前
2025年哔哩哔哩技术精选技术干货
前端·后端·架构
IT_陈寒2 小时前
Redis性能翻倍的5个关键策略:从慢查询到百万QPS的实战优化
前端·人工智能·后端
蓝眸少年CY2 小时前
测试Java性能
java·开发语言·python
何包蛋H2 小时前
数据结构深度解析:Java Map 家族完全指南
java·开发语言·数据结构