spring三种实例化Bean的方式和管理Bean的作用域和Bean的生命周期

Spring实例化Bean的三种方式分别是:

1,xml配置使用bean的类构造器

<bean id="personService" class="cn.service.impl.PersonServiceBean"></bean>

2,xml配置+factory类,使用静态工厂方法实例化

<bean id="personService2" class="cn.service.impl.PersonServiceBeanFactory"  factory-method="createPersonServiceBean"/>

3,xml配置+factory类,使用实例工厂方法实例化

<bean id="personServiceFactory" class="cn.service.impl.PersonServiceBeanFactory"/>

<bean id="personService3" factory-bean="personServiceFactory" factory-method="createPersonServiceBean2"/>

三种Spring实例化Bean方法的用处,

第一种方法,通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。

第二种方法,利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。

第三种方法,利用实例化factory方法创建,即将factory方法也作为了业务bean来控制。

Bean的作用域

1,默认:singleton(单例,每次getBean()都是相同的Bean)

<bean id="bean1" class="cn.transaction.Bean1"></bean>

2,prototype:(每次getBean()都会获得新的Bean)

<bean id="bean1" class="cn.transaction.Bean1" scope="prototype"></bean>

Bean的生命周期

1,默认:singleton 在容器实例化的时候就会实例化;

1.1,更该实例化时间:

<bean id="bean1" class="cn.transaction.Bean1" lazy-init="true"></bean>

如果要为所有的Bean延迟初始化:

在beans中配置该属性

1.2,配置初始化方法:

<bean id="bean1" class="cn.transaction.Bean1" lazy-init="true" init-method="init"></bean>

1.3,配置销毁方法

<bean id="bean1" class="cn.transaction.Bean1" lazy-init="true" init-method="init" destroy-method="destroy"></bean>

1.4,bean在什么时候被销毁

默认既然是在spring容器初始化时创建Bean,所以是Bean是在spring容器关闭的时候销毁。

2,prototype:在调用getBean()的时候进行实例化;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值