【176、bean是在什么阶段初始化,是spring 是用到初始化还是实例的时候初始化】

461 阅读1分钟

在Spring容器启动时,所有的Bean都会被实例化和初始化。这是因为Spring容器需要先实例化和初始化所有的Bean,以便进行依赖注入和解析依赖关系,保证Bean之间的正确性。

在Spring容器启动时,容器会按照指定的配置信息(如XML配置文件、Java注解等)扫描和解析Bean的定义,包括Bean的类名、构造函数、属性、依赖关系等信息。然后容器会利用反射机制实例化所有的Bean,并进行属性注入和依赖解析。在这个过程中,如果Bean实现了InitializingBean接口,或者在配置文件中指定了init-method属性,容器会在实例化和属性注入完成后调用相应的方法完成Bean的初始化。

一旦Bean初始化完成,容器就可以将它们暴露给其他Bean使用了。当其他Bean需要使用某个Bean时,容器会先检查该Bean是否已经被实例化,如果没有,就会先进行实例化和初始化,然后再进行依赖注入和依赖解析,最后将Bean返回给请求者使用。

总之,Bean的初始化是在Spring容器启动时完成的,而不是在使用Bean时进行初始化。这样做的好处是,能够保证Bean之间的正确性,以及在使用时的高效性和可靠性。