当前位置: 代码迷 >> 综合 >> (延时加载)Spring框架中的lazy-init=true和default-lazy-init=true的区别
  详细解决方案

(延时加载)Spring框架中的lazy-init=true和default-lazy-init=true的区别

热度:109   发布时间:2023-11-03 14:27:22.0

启动Spring框架,因为default-lazy-init="false",会默认加载整个对象实例图,从初始化Controller(控制层)配置,到Service(业务逻辑层),再到dao(数据访问接口层),最后到数据库连接等等,该default-lazy-init配置默认为false,加重web服务器在运行时的压力,所以出现标题那两种配置很好的解决这个服务器加载不必要提前加载的对象的问题。

1.共同点:

减少启动Spring的时间,减少web服务器在运行的负担。

2.不同点:

1)default-lazy-init参数,其配置形式如下:

<beans default-lazy-init="true" > </beans>

配置default-lazy-init参数为true时,当创建IoC容器时,bean中对象不会实例化,当IoC容器需要实例化某个bean中的对象,对象才被实例化

2.lazy-init参数,其配置形式如下:

<bean id="stu" lazy-init=“true”></bean>

当创建IoC容器时,bean中id为stu对象不会实例化,当IoC容器需要实例化stu对象,才被实例化

注意点:default-lazy-init参数是配置在beans标签中,而lazy-init参数配置在相应需要延时加载的bean标签中,default-lazy-init参数针对所有的bean配置,而lazy-init参数针对需要的延时加载的bean配置,所以lazy-init比default-lazy-init的优先级更高,

  相关解决方案