在使用spring框架的时候,对bean有许多重要信息:
三种创建bean的方式:
- 使用类的默认构造函数
- 使用工厂类里面的方法来创建对象
- 使用工厂类的静态方法创建对象
//这种最常用的就是使用默认构造函数来创建的
<bean id="service" class="service.impl.userServiceImpl"></bean>
//这种就是第二种方法,要先获取到工厂类的实例,在使用两个属性来定向指向对应的工厂和方法
<bean id="factory" class="factory.SFactory"></bean>
<bean id="service" factory-bean="factory" factory-method="getService"></bean>
//这种最常用的就是使用默认构造函数来创建的 其实就是给方法加了static
<bean id="staticfactory" class="factory.StaticFactory" factory-method="getStaticService"></bean>
bean的作用范围
可以使用bean标签里面的scope属性来指定bean对应的作用范围,有以下取值:
- singlenton:单例(默认)
- prototype:多例
- request:作用于web应用的请求范围
- session:作用于web应用的会话范围
- global-session:作用于集群的请求范围,(没有集群,就相当于上面的session)
bean对象的生命周期
分为两种:一种单例,一种多例
- 单例:当容器创建的时候对象创建;只要容器还存在,对象就一直存在;容器销毁,对象消失。 也就是单例对象的生命周期和容器相同。
- 多例:当使用对象的时候,才会创建对象;对象在使用过程中一直存活;等JVM进行垃圾回收。