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

相关推荐
GoodStudyAndDayDayUp1 分钟前
一个简单的java jar跑docker
java·docker·jar
桃西西呀5 分钟前
Spring AI Alibaba 之三:graph-core 状态图引擎深拆
人工智能·spring·llm
Nebula_g15 分钟前
JavaSE加强:Commons-io框架
java·开发语言·算法·javase
程序猿_极客25 分钟前
【免费】2026分享一套优质的基于Java的电子产品抢购管理系统的设计与实现(智能推荐算法+可视化图表),源码+文档+视频详解(讲解)
java·spring boot·后端·协同过滤·电子产品抢购系统
小羊没烦恼!26 分钟前
关于大型asp.net应用系统的架构-架构的选择
java·服务器·开发语言·前端·c#
天空鸟_时光不老28 分钟前
09-RAG问答系统落地:从默认分割器的坑到Milvus召回调优
java·人工智能·spring boot·spring·spring cloud·maven·mybatis
小羊没烦恼!37 分钟前
Windows Azure Platform体验(1):Windows Azure
java·大数据·后端·python·flask·word·.net
suaizai_1 小时前
ComputerUse:让AI真正操控桌面系统
java·前端·javascript
小小张说故事1 小时前
Python 装饰器到底是个啥?从 @ 符号到手写一个,5 个例子讲透
后端·python
CodeSheep1 小时前
朋友面试谈薪报价2w,HR非得压到1.9,还反问他:你就差这1000块钱?后来背调时问了他前同事十几个问题,对方最后直接挂了
前端·后端·程序员