开发者社区> 问答> 正文

spring 中 applicationContext.xml中bean的属性 lazy-init="true"无效果

在使用spring时,进行 applicationContext.xml 中bean的属性 lazy-init="true" 的测试,发现没有起到延迟的作用,不知道是什么原因?

applicationContext.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd">

     <bean id="mybean" class="com.pan.beans.MyBean" lazy-init="true"></bean>
</beans>

public class MyBean {
   public MyBean(){
    System.out.println("创建MyBean");
   }
}

测试类:

public class Test2 {
 private static String[] CONFIGS = {"applicationContext.xml"};
    public static void main(String[] args) {
     
   ApplicationContext ac = new ClassPathXmlApplicationContext(CONFIGS);
   MyBean mybean = (MyBean) ac.getBean("mybean");
  }
}

如果,lazy-init 属性起到作用了,应该是控制台上不会打印:创建MyBean ;但是,加了这个属性后,控制台依旧出现,请问这是什么情况?

展开
收起
a123456678 2016-03-17 10:11:29 3831 0
1 条回答
写回答
取消 提交回答
  • 我把这句MyBean mybean = (MyBean) ac.getBean("mybean");注释掉后,bean加上lazy-init =“false”运行,控制台上只有spring启动的信息;再将lazy-init =“true"设置,运行

    2019-07-17 19:04:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多