感谢ITCAST发布的免费视频。
作用域范围是单例的bean是在实例化容器的时候就实例化。
作用域范围是prototype的bean是在getBean的时候被实例化的。
作用与范围是单实例并且lazy-init="true",是在getBean的时候被实例化的。
也可以指定beans节点的属性default-lazy-init=true
lazy-init的缺点是不能再启动时发现实例化的错误,只能在运行期发现,这点是我们不太希望看到的
如果在生成bean时需要对某些资源进行初始化,可以指定init-method="init",方法名指定为类里面的方法名。此方法是在实例化过后执行。如果在bean被销毁前要关闭一些资源,可以指定destroy-method="destroy"
需要调用spring容器的close方法进行关闭才能执行销毁方法,与前面代码有一定不同。
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ctx.close();