`

spring applicationContext.xml中<beans>default-lazy-init="true"</beans>

 
阅读更多

原文地址:http://blog.csdn.net/dracotianlong/article/details/8989874

今天在做项目的时候无意看到  在spring的配置中的根节点上有个  default-lazy-init="true"配置,从来没有用过,google下,记录如下

1、spring的default-lazy-init参数 

spring在启动的时候,会默认加载会默认加载整个对象实例图,从初始化ACTION配置、到 service配置到dao配置、乃至到数据库连接、事务等等。这样可以减少web服务器在运行时的负担,但是对于开发者来说无疑是效率极低的一个设置了。 
spring提供了default-lazy-init属性,其配置形式如下,applicationContext.xml中: 
< beans  default-lazy-init ="true" >   
</beans> 

我用以前一个office项目测试了下,因为office的spring文件很多,我就配置了下,启动时间减少60%左右。

 

2、Spring 中lazy-init 和abstract 属性 
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是个模板 

分享到:
评论

相关推荐

    S2SH xml配置文件

    default-lazy-init="true"&gt; ``` - 定义了多个命名空间,分别用于支持Bean定义、AOP(面向切面编程)、事务管理等功能。 - `default-lazy-init="true"`表示默认情况下Bean的实例化采用懒加载方式。 ```xml &lt;!-- 源...

    javaSSH框架搭建配置

    &lt;param-value&gt;classpath:applicationContext*.xml&lt;/param-value&gt; &lt;/context-param&gt; ``` - `&lt;listener&gt;`标签定义了一个监听器,用于监听容器的启动事件。 - `org.springframework.web.context....

    struts2 hibernate spring集成

    -- 关于spring启动的优化 default-lazy-init="true" --&gt; &lt;bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="location"&gt; &lt;value...

    浅谈spring中的default-lazy-init参数和lazy-init

    在applicationContext.xml文件中,可以通过以下方式设置default-lazy-init参数: ``` &lt;beans default-lazy-init="true"&gt; ...... &lt;/beans&gt; ``` 二、lazy-init参数 lazy-init参数是Bean级别的参数,它控制着单个...

    Spring+Struts2_整合原理

    &lt;beans default-lazy-init="true"&gt; &lt;bean id="personManager" class="com.acme.PersonManager"/&gt; &lt;/beans&gt; ``` 通过这样的配置,Spring会在启动时自动加载这些Bean,并根据依赖关系进行注入。 ##### 4. 修改...

    truts2+hibernate3.2+spring2.5 proxool成步骤

    default-lazy-init="true"&gt; &lt;!-- 配置PropertyPlaceholderConfigurer以读取jdbc.properties --&gt; &lt;bean id="propertyConfigurer" class="org.springframework.beans.factory.config....

    ssh整合步骤

    &lt;package name="default" extends="struts-default" namespace="/"&gt; &lt;action name="showall" class="com.example.action.GoodsAction" method="showall"&gt; &lt;result name="success"&gt;/WEB-INF/views/all.jsp&lt;/result...

    Spring中Quartz的配置[总结].pdf

    &lt;bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; &lt;property name="triggers"&gt; &lt;list&gt; &lt;ref bean="doTime"/&gt; &lt;/list&gt; &lt;/...

    ssh(structs,spring,hibernate)框架中的上传下载

    7. class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> 8. <property name="nativeJdbcExtractor"> 9. <ref local="nativeJdbcExtractor"/> 10. </property> 11. </bean> ...

    Spring中Quartz的配置

    &lt;bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; &lt;property name="triggers"&gt; &lt;list&gt; &lt;ref bean="doTime"/&gt; &lt;/list&gt; &lt;/...

    Spring 延迟实例化

    在Spring中配置一个bean为延迟实例化非常简单,只需要在`&lt;bean&gt;`元素中添加`lazy-init`属性并设置其值为`true`即可。例如: ```xml &lt;bean id="lazyBean" class="com.example.LazyBean" lazy-init="true"&gt; &lt;!-- ...

    java面试宝典

    &lt;param-value&gt;/WEB-INF/beans.xml&lt;/param-value&gt; &lt;/context-param&gt; ``` 3. **Struts2值栈的理解** - **值栈(ValueStack)** 是Struts2的核心概念,它基于OGNL(Object-Graph Navigation Language)提供数据访问...

    java-spring整合

    要实例化 Spring 容器,需要创建一个 Spring 配置文件(applicationContext.xml),用于定义 Bean 的实例化和依赖项注入。然后,使用 Spring 的ApplicationContext 来实例化 Bean 并调用其方法。 六、 控制 Bean ...

Global site tag (gtag.js) - Google Analytics