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 小时前
ThreadLocal 功能及使用场景介绍,使用详解
java
zh73142 小时前
typephp的编译核心phpx原理解析
android·java·开发语言
2401_894915534 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
Java牛马8 小时前
SpringBoot Starter 依赖相关总结
java·spring·springboot·starter·自动装配·依赖
吴声子夜歌8 小时前
Java面试——Spring Cloud原理及应用(二)
java·spring cloud·面试
SomeB1oody8 小时前
【RustyML入门】6.3. 并行归约
开发语言·后端·机器学习·rust·教程
东小西9 小时前
【SAA实战】第 1 篇:ReactAgent 入门——先撸个"会调工具的助手"跑起来
java·人工智能·spring
Profile排查笔记9 小时前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户938515635079 小时前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
mqiqe10 小时前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui