Spring2.5教程:3、Bean

来源:互联网 发布:网络产品线 it产品线 编辑:程序博客网 时间:2024/05/21 15:47

三种实例化bean的方式bean为业务bean:像task

1.使用类构造器实例化,(调用默认的构造函数)

<bean id=“orderService" class="cn.itcast.OrderServiceBean"/>

2.使用静态工厂方法实例化

<bean id="personService" class="cn.itcast.service.OrderFactory" factory-method="createOrder"/>

public class OrderFactory {

  public staticOrderServiceBeancreateOrder(){

  return new OrderServiceBean();

  }

}

3.使用实例工厂方法实例化:

<bean id="personServiceFactory" class="cn.itcast.service.OrderFactory"/>

<bean id="personService" factory-bean="personServiceFactory" factory-method="createOrder"/>

public class OrderFactory {

  public OrderServiceBeancreateOrder(){

  return new OrderServiceBean();

  }

}

 

Bean的作用域(通过scope属性指定)

.singleton (默认下bean是单例模式)

 在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean这时候,只有第一次获取bean会才初始化bean。如:

 <bean id="xxx" class="cn.itcast.OrderServiceBeanlazy-init="true"/>

如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“如下:

<beans default-lazy-init="true“ ...>(不建议使用)

.prototype

 每次从容器获取bean都是新的对象,在第一次获取时初始化。scope="prototype"

 

下面是对应于web应用的

.request

.session

.global session

 

 指定Bean的初始化方法和销毁方法

指定Bean的初始化方法和销毁方法

<bean id="xxx" class="cn.itcast.OrderServiceBeaninit-method="init" destroy-method="close"/>

init-method:在bean实例化后会执行init()方法,在bean销毁(spring容器退出)的时候执行close()

Init初始化方可以对一些资源进行打开等等

业务bean类里有初始化方法init,可以通过init-method="“来指定初始化方法,来让容器初始化的时候执行。

容器执行顺序:先实例化bean,再执行初始化方法。

原创粉丝点击