@Bean注解下的方法如何执行

Posted 八阿哥克星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Bean注解下的方法如何执行相关的知识,希望对你有一定的参考价值。

通过@Bean修饰的方法来注入对象的流程:首先,@bean修饰的方法的方法名称会加入到DefaultListableBeanFactory.beanDefinitionNames集合中,随后会经过refresh一并初始化,以下图为例:

 

启动类运行时,由于spring默认是非懒加载的,因此会遍历beanDefinitionNames,并做一系列判断进行初始化,而myBean也在此列。

初始化myBean的时候,走到

 

这里时,进去:

 

经过圈红处对mbd的判断,表示这个对象应该是factorybean创建的,即beanConfig,后边就是找到或者创建BeanConfig对象,通过反射获取到他的方法,并执行获取到MyBean对象,放入BeanFactory的一级缓存singletonObjects中!

 

以上是关于@Bean注解下的方法如何执行的主要内容,如果未能解决你的问题,请参考以下文章

@Bean注解下的方法如何执行

Bean生命周期中@PostConstruct注解用法以及解决场景

多线程

如何调用spring配置文件手动注入的bean

SpringSpring 用注解 储存bean(类注解方法注解)Spring如何制作出类注解beanName

@PostConstruct