Spring Bean的初始化和实例化的区别

版权声明:如果觉得文章对你有用,转载不需要联系作者,但请注明出处 https://blog.csdn.net/jinxin70/article/details/83796137

准确的说,标题中的初始化指的是Bean Definition的初始化,所以是完全不同的两个概念。

普通的Java类如果想被SpringIOC容器托管,拥有强大的扩展功能和更强大的生命周期,用户(程序员)要做的只是写配置或者写注解,然后Spring会做这些事:

首先,从xml或者注解扫描后的metadata中读取并加载Java类的原始数据到内存,通常是class二进制文件内容。

其次,将上一步读取的内容,转化为Bean Definition保存到DefaultListableBeanFactory的属性中,内部使用asm的API操作具体的字节码数据内容。

最后,需要实例化Bean的时候,使用反射调用构造函数实例化class,在内存中生成对象,接着给这个对象设置属性,自动装配依赖。

猜你喜欢

转载自blog.csdn.net/jinxin70/article/details/83796137