读书人

Spring 配置中的 default-lazy-init=quot;

发布时间: 2013-01-27 13:55:24 作者: rapoo

Spring 配置中的 default-lazy-init="false"

Spring 配置中的 default-lazy-init="false"spring的容器是提供了lazy-load的,即默认的缺省设置是bean没有lazy-load,该属性处于false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初始化ACTION配置、到service配置到dao配置、乃至到数据库连接、事务等等。这么庞大的规模,难怪spring的启动时间要花将近1分钟。尝试了一下,把beans的default-lazy-init改为true就,再次启动,速度从原来的55秒,降到8秒钟!!Great!虽然是非常小一个改动,但是影响确实非常大。????? < bean? class ="org.xxxx.bean" >??

????? 。。。。。。

</beans>

??? spring配置默认default-lazy-init为false,当配置为true时sping不会再去加载整个对象实例图,大大减少了初始化的时间,减少了spring的启动速度。

??? 这样做只是为了在开发过程中节约启动时间,在部署到实际环境中,倒是没必要设置default-lazy-init为true。毕竟部署到实际环境中不是经常的事,每次启动1分钟倒不是大问题,而且可以提高服务器效率。

??? 当然,也不是所有的beans都能设置default-lazy-init成为true.对于scheduler的bean不能用lazy-init??

< beans? default-lazy-init ="true" >??
????? < bean? class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >??
????????? < property?? name ="triggers" >??
????????????? < list >??
????????????????? < ref?? bean ="buildHtmlTrigger" />??
????????????????? < ref?? bean ="askTrigger" />??
????????????????? < ref?? bean ="mailSenderTrigger" />??
????????????????? < ref?? bean ="topicDetailBuildTrigger" />??
????????????????? < ref?? bean ="forumBuildTrigger" />??
????????????????? < ref?? bean ="topicBuildTrigger" />??
????????????? </ list >??
????????? </ property >??
????? </ bean >??
</ beans >??
??? 这样的话。所有的scheduler就都不管用了。所以请大家要注意。??

?

????? <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是个模板

    ?

    读书人网 >软件架构设计

    热点推荐