spring在启动的时候,会默认加载会默认加载整个对象实例图,从初始化ACTION配置、到 service配置到dao配置、乃至到数据库连接、事务等等。这样可以减少web服务器在运行时的负担,但是对于开发者来说无疑是效率极低的一个设置了。
还好,spring提供了default-lazy-init属性,其配置形式如下,applicationContext.xml中:
< beans default-lazy-init ="true" >
< 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就都不管用了。所以请大家要注意。
分享到:
相关推荐
浅谈Spring中的default-lazy-init参数和lazy-init 在Spring框架中,有两个重要的参数default-lazy-init和lazy-init,它们都是用于控制Bean实例化的时机的。下面我们将详细介绍这两个参数的作用和区别。 一、...
`<beans>`元素添加了`default-lazy-init`属性,可以设置整个配置文件中所有bean的默认延迟初始化行为。此外,`<constructor-arg>`和`<property>`支持了`ref`和`value`的简写形式,使得配置更简洁。 `spring-beans-...
'default-lazy-init' attribute is not processed when XSD validation is disabled [SPR-8335] #12983 Spring JavaMailSenderImpl does not show proper message when recipient list is empty [SPR-17540] #22072 ...
初始化:<bean init-method=""/> e.资源释放:<bean destroy-method=""/>仅对单例对象有效 (2)IoC概念 Inversion of Control 控制反转或控制转移 Don't Call Me,We will call you! 控制权:对象的创建和调用...
- `default-init-method`和`default-destroy-method`:用于指定默认的初始化和销毁方法,如果未在Bean定义中指定,容器会尝试调用这些方法。 4. **Spring 外部化配置元信息**:PropertySource表示从外部文件加载的...
初始化:<bean init-method=""/> e.资源释放:<bean destroy-method=""/>仅对单例对象有效 (2)IoC概念 Inversion of Control 控制反转或控制转移 Don't Call Me,We will call you! 控制权:对象的创建和调用...
初始化:<bean init-method=""/> e.资源释放:<bean destroy-method=""/>仅对单例对象有效 (2)IoC概念 Inversion of Control 控制反转或控制转移 Don't Call Me,We will call you! 控制权:对象的创建和调用...
我的博客中“maven环境搭建及Spring入门”的项目代码。在idea中运行成功。 1。创建IOC容器 2。通过xml装配对象 【简单类型用value、复杂(引用类型)用ref、数组,集合,Map的装配】 ...default-lazy-init=true
除了为每个bean单独配置`lazy-init`属性外,还可以通过`<beans>`元素的`default-lazy-init`属性来设置全局默认行为。例如: ```xml <beans default-lazy-init="true"> <!-- 这里定义的所有bean都默认为懒加载 --> ...
1. `default-init-method`: 如果设置了这个属性,那么配置文件中所有的Bean在初始化时都会调用指定的方法。这是一个方便的机制,用来确保所有Bean在开始使用前都完成了必要的初始化工作。 2. `default-destroy-...
-- 关于spring启动的优化 default-lazy-init="true" --> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <value>classpath:jdbc.properties <!-- 使用proxool连接池...
<beans default-lazy-init="true"> ``` 通过这样的配置,Spring会在启动时自动加载这些Bean,并根据依赖关系进行注入。 ##### 4. 修改Struts配置 最后一步是对Struts配置文件进行修改,以适应与Spring的整合。...
- `default-lazy-init`和`default-autowire`分别定义了默认的bean初始化方式(是否延迟加载)和自动装配策略。 6. **实体类`User.java`**: 实体类`User`包含`name`和`age`属性,以及对应的getter和setter方法。...
New Features FormHttpMessageConverter should support non-String form values [SPR-17645] #22174 ...'default-lazy-init' attribute is not processed when XSD validation is disabled [SPR-8335] #12983
<beans default-autowire="byName" default-lazy-init="false" default-dependency-check="none"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 其他属性...
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" default-lazy-init="true"> ``` 3. **动态更新 Trigger**:通过获取 Scheduler 实例并调用相应的 API 方法来...
default-lazy-init="true" default-autowire="byName"> <!-- 启用AspectJ自动代理 --> <aop:aspectj-autoproxy/> <!-- 配置切面类 --> ``` ### 实现 2. 接下来,创建一个名为`Aop`的切面类,它包含了...
default-lazy-init="false" default-autowire="byName"> <context:annotation-config/> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> ...