Spring Bean属性

实例化方式
•用构造器来实例化
<bean id="XXXbean" class=""/>
•使用 静态工厂方法实例化
<bean id="XXXbean" class="XXXfactoryClass" factory-method=""/>
•使用实例工厂方法实例化
<bean id="XXXfacotry" class=""/>
<bean id="XXXbean" factory-bean="XXXfacotry" factory-method=“” />

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

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

利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,觉得1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。


[b]延迟初始化
初始化方法
摧毁方法[/b]

<bean id="personService1" class="cn.itcast.service.impl.PersonServiceBean" lazy-init="false" init-method="init" destroy-method="destroy"></bean>



1.lazy-init
<beans> 
<bean id="service1" type="bean路径" lazy-init="true"/>

<bean id="service2" type="bean路径" lazy-init="false">
<property name="service1" ref="service1"/>
</bean>
</beans>


以上两个bean,一个lazy-init属性为true,一个为false,由什么区别呢
当IoC容器启动时,service2会实例化,而service1则不会;但是但容器实例化service2时,service1也被实例化了,为什么呢,因为service2需要它。也就是说lazy-init="true"的bean,IoC容器启动时不会实例化该bean,只有当容器需要用到时才实例化它。lazy-init有利于容器效率,对于不需要的bean可以先不管。

2.abstract
<bean id="baseTxService" 
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
……
</bean>

bean abstract="true"时,该bean不会被实例化,上面的bean是个模板
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值