默认情况下,Spring容器启动时就会初始化容器中的所有bean,但是我们可以指定bean元素的的lazy-init="true"来延迟初始化bean,这时只有在获取该bean时,才会初始化bean。应该注意的是即使设置了lazy-init="true“,有些情况下也不一定会被延迟〔它被另一个bean依赖,而另一个bean没有被迟〕。
当bean的作用域范围是默认的singleton时,bean会在Spring容器启动时就初始化,如果bean的作用域范围是prototype,bean的初始化是在调用该bean的实例时,才会初始化。如果想在容器启动时,延迟singleton bean的初始化,则应该按照上一点的方法。
如果想在bean被初始化的同时,让bean所对应的类的某个方法执行,可以使用 init-method属性,该属性的值是对应类中的某一方法名〔不用加括号即参数〕。
同样的,当我们想在某bean销毁时,也同时执行该bean对应类的某一方法,Spring也提供了一个属性:destroy-method。