实现了接口BeanMetadataElement的getSource方法。分别用来存储BeanDefinition, bean name和别名。该方法从beanDefinition属性中拿到source并返回。
原创
2023-07-15 08:00:06
57阅读
上一篇博客Spring源码学习--Bean注入解析结果BeanDefinition我们已经介绍了BeanDefinition
原创
2022-08-25 17:33:22
55阅读
调用图AnnotationConfigUtilspublic static Set<BeanDefinitionHolder> registerAnnotationConfigProcessors(
原创
2022-02-18 17:15:59
176阅读
protected void processBeanDefinition(Element ele, BeanDefinitionParserDelegate delegate) {
BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele);
if(bdHolder != null) {
原创
2023-09-20 11:07:36
89阅读
调用图AnnotationConfigUtilspublic static Set<BeanDefinitionHolder> registerAnnotationConfigProcessors( BeanDefinitionRegistry registry, @Nullable Object source) { //从registry里得到beanFactory DefaultListableBeanFactory beanFactory = unwrapDe.
原创
2021-08-25 09:27:13
215阅读
基本概念BeanDefinitionDocumentReader ,该类的作用有两个,完成 BeanDefinition 的解析和注册 。解析:其实是解析 Ddocument 的内容并将其添加到 BeanDefinition 实例的过程。注册:就是将 BeanDefinition 添加进 BeanDefinitionHolder 的过程,这样做的目的是保存它的信息。下面来看它的接口定义,该接口只定
FeignClientFactoryBean创建动态代理 探索FeignClient的注册流程 当直接进去注册的方法中,一步步放下走,都是直接放bean的定义信息中放入值,然后转成BeanDefinitionHolder,最后在注册到IOC容器中。 具体的信息可以看下面断点的图。 在仔细看一下就会发 ...
转载
2021-10-20 11:06:00
139阅读
2评论
我们知道Spring是通过JDK或者CGLib实现动态代理的,今天我们讨论一下JDK实现动态代理的原理。
一、简述
Spring在解析Bean的定义之后会将Bean的定义生成一个BeanDefinition对象并且由BeanDefinitionHolder对象持有。在这个过程中,如果Bean需要被通知切入,BeanDefinition会被重新转换成一个proxyDefinition(其实也是一个B
转载
2019-05-29 10:38:00
113阅读
2评论
一、解析带解析的配置类书接上文中最重要的两个方法,我们先看第一个,debug进入public void parse(Set<BeanDefinitionHolder> configCandidates) {
// 传入的带解析的配置类是一个集合,但是我们本次debug是springboot第一次启动,此时这个结合只有启动类这一个配置类
for (Be
我们知道Spring是通过JDK或者CGLib实现动态代理的,今天我们讨论一下JDK实现动态代理的原理。一、简述Spring在解析Bean的定义之后会将Bean的定义生成一个BeanDefinition对象并且由BeanDefinitionHolder对象持有。在这个过程中,如果Bean需要被通知切入,BeanDefinition会被重新转换成一个proxyDefinition(其实也是一个Bea
转载
2018-03-19 17:22:00
1863阅读