一、
二、scope属性
名称: scope类型:属性
归属: bean标签
作用:定义bean的作用范围
格式:
<bean scope=“singleton"></bean>
取值:
singleton:设定创建出的对象保存在spring容器中,是一个单例的对象(bean默认是单例)
单例的对象是在加载spring容器时就创建了,且此后你在同一个bean获取资源时,用getBean()方法得到的对象都是同一个地址值的对象
prototype:,设定创建出的对象保存在spring容器中,是一个非单例的对象
非单例的对象是在调用getBean()方法时才创建对象,在同一个bean获取的资源时,用getBean()方法得到的对象都不相同request、session、application、websocket:设定创建出的对象放置在web容器对应的位置
三、bean的生命周期控制
用于控制方法的执行时机
名称: init-method, destroy-method类型:属性
归属: bean标签
作用:定义bean对象在初始化或销毁时完成的工作
格式:
<bean init-method="init" destroy-method="destroy></bean>
取值: bean对应的类中对应的具体方法名
案例,续写于IoC入门案例 02
1、新增方法
其实这样就可以实现效果了,但是要想在控制台看见销毁的效果,步骤如下
2、
注意事项:
当scope= “singleton”时,spring容器中有且仅有一个对象,init方法在创建容器时仅执行一次
当scope=“prototype”时,spring容器要创建同一类型的多个对象,init方法在每个对象创建时均执行一次
当scope= “singleton”时,关闭容器会导致bean实例的销毁,调用destroy方法一次
当scope= “prototype”时,对象的销毁由垃圾回收机制gc()控制,destroy方法将不会被执行
四、
案例一、静态工厂bean
1.1、创建工厂和将工厂类添加到配置文件
1.2、测试
案例二、实例工厂bean,和案例一类似
1.1、创建工厂和将工厂类添加到配置文件
1.2、测试