Spring管理Bean的生命周期,Spring创建的Bean是单实例还是多实例?
2014-08-27 10:32
363 查看
Spring框架对于Bean类的实例化、值的注入、依赖关系的注入等,都是由Spring的管理容器和配置文件自动完成的。
Spring Bean也称为组件,任何一个JavaBean类都可以作为Spring Bean,但Spring Bean并不要求一定要严格遵循Java Bean规范。Spring中的Bean可以是任意的Java对象,如数据库连接池。
Spring Bean通过Spring容器对其进行实例化、值的注入,以及依赖关系注入等方面管理,还需要对Bean进行定义,即将它定义为一个Spring Bean。
配置Bean参数:
在XML文件中,使用bean标签来定义Spring Bean。如:
<bean id="Company" class="springbean.Company" scope="singleton" init-method="postConstuct" destroy-method="preDestroy">
...
</bean>
参数说明:
1、Scope——值为singleton或prototype,用来指定这个Bean是否使用单实例。
2、init-method——值为方法名,代表Bean的一个方法
此方法的执行时机是在实例化该Bean之后,将对象返回到应用层之前。这个方法常用来做资源的初始化工作。
3、destroy-method——值为方法名,代表Bean的一个方法
此方法在Bean即将被销毁之前执行,主要用来进行资源的释放。
配置Bean属性:
基本类型属性的配置,如int、String类型。这些类型的属性值可以通过value元素来指定。
<property name="name" value="明星公司"/>
<property name="age" value="20"/>
value元素的值应为基本类型,如int、float、String等,Spring 会对类型作出判断,并进行正确的转换。
引用属性的配置,例如对其他Bean的引用。这种类型的属性应通过ref元素来指定。ref元素指定了属性对其他Bean的依赖关系。根据这个依赖关系,容器在运行时会对ref属性所指定的Bean进行创建。
<property name="address" ref="Address"/>
<!--Address Bean-->
<bean id="Address" class ="springbean.Address">
<property name="city" value="北京"/>
<property name="street" value="西城区南礼路">
</bean>
集合类型属性的配置,通过集合元素来指定。
Spring支持集合类型的Bean属性。这里的集合类型可以是List、数组、Set、Map等类型。
<property name="employees">
<list>
<value>张三</value>
<value>张四</value>
<value>张五</value>
<value>张五</value>
</list>
</property>
使用依赖注入——两种方法 设值注入、构造器注入
设值注入,通过Bean的set方法来完成,因此,如果在XML中定义了Bean的属性值,并且使用设值注入方式,那么必须在Bean类中提供属性的set方法。
Spring设值注入的过程就好比我们使用传统方式创建一个对象时,先通过new关键字调用无参构造器来产生对象,再通过调用对象的set方法来设值属性值。
构造器注入,Spring构造器注入的过程就好比我们使用传统方式创建一个对象时,通过new关键字直接调用带参数构造器来产生对象,将对象属性值通过参数来设置。
需要在XML文件中使用constructor-arg元素来指定属性值。
<bean id="Company" class="springbean.Company">
<constructor-arg type="java.lang.String" index="0">
<value>明星公司<value>
</constructor-arg>
<constructor-arg>
<value>20</value>
</constructor-arg>
</bean>
Spring Bean也称为组件,任何一个JavaBean类都可以作为Spring Bean,但Spring Bean并不要求一定要严格遵循Java Bean规范。Spring中的Bean可以是任意的Java对象,如数据库连接池。
Spring Bean通过Spring容器对其进行实例化、值的注入,以及依赖关系注入等方面管理,还需要对Bean进行定义,即将它定义为一个Spring Bean。
配置Bean参数:
在XML文件中,使用bean标签来定义Spring Bean。如:
<bean id="Company" class="springbean.Company" scope="singleton" init-method="postConstuct" destroy-method="preDestroy">
...
</bean>
参数说明:
1、Scope——值为singleton或prototype,用来指定这个Bean是否使用单实例。
2、init-method——值为方法名,代表Bean的一个方法
此方法的执行时机是在实例化该Bean之后,将对象返回到应用层之前。这个方法常用来做资源的初始化工作。
3、destroy-method——值为方法名,代表Bean的一个方法
此方法在Bean即将被销毁之前执行,主要用来进行资源的释放。
配置Bean属性:
基本类型属性的配置,如int、String类型。这些类型的属性值可以通过value元素来指定。
<property name="name" value="明星公司"/>
<property name="age" value="20"/>
value元素的值应为基本类型,如int、float、String等,Spring 会对类型作出判断,并进行正确的转换。
引用属性的配置,例如对其他Bean的引用。这种类型的属性应通过ref元素来指定。ref元素指定了属性对其他Bean的依赖关系。根据这个依赖关系,容器在运行时会对ref属性所指定的Bean进行创建。
<property name="address" ref="Address"/>
<!--Address Bean-->
<bean id="Address" class ="springbean.Address">
<property name="city" value="北京"/>
<property name="street" value="西城区南礼路">
</bean>
集合类型属性的配置,通过集合元素来指定。
Spring支持集合类型的Bean属性。这里的集合类型可以是List、数组、Set、Map等类型。
<property name="employees">
<list>
<value>张三</value>
<value>张四</value>
<value>张五</value>
<value>张五</value>
</list>
</property>
使用依赖注入——两种方法 设值注入、构造器注入
设值注入,通过Bean的set方法来完成,因此,如果在XML中定义了Bean的属性值,并且使用设值注入方式,那么必须在Bean类中提供属性的set方法。
Spring设值注入的过程就好比我们使用传统方式创建一个对象时,先通过new关键字调用无参构造器来产生对象,再通过调用对象的set方法来设值属性值。
构造器注入,Spring构造器注入的过程就好比我们使用传统方式创建一个对象时,通过new关键字直接调用带参数构造器来产生对象,将对象属性值通过参数来设置。
需要在XML文件中使用constructor-arg元素来指定属性值。
<bean id="Company" class="springbean.Company">
<constructor-arg type="java.lang.String" index="0">
<value>明星公司<value>
</constructor-arg>
<constructor-arg>
<value>20</value>
</constructor-arg>
</bean>
相关文章推荐
- 传智播客Spring2.5视频教程_Spring管理的Bean的生命周期 2
- spring学习笔记整理--04(配置Spring管理的bean的作用域、生命周期)
- Spring管理Bean的三种创建方式
- 【SSH三大框架】Spring基础第一篇:搭建Spring环境、实例化Bean、管理Bean的作用域以及Bean的生命周期
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- Spring管理的bean的生命周期1(转)
- Spring静态工厂和实例工厂创建bean
- Spring管理bean的生命周期
- Spring创建Bean实例的三种方法
- Spring实现bean生命周期管理
- 详解Spring-Bean生命周期实例
- 【spring NOTE】调用实例工厂方法创建Bean
- Spring 管理bean的生命周期
- 实例注入Bean的几种形式,特别注意多例模式下Bean生命周期无人管理
- 传智播客Spring2.5视频教程_Spring管理的Bean的生命周期 1
- spring2.5.6学习笔记七:Spring管理的Bean的生命周期
- (2)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期
- spring2.5系列之---------spring管理bean的生命周期
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- spring容器对bean生命周期的管理三中方式