在使用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 ;但是,加了这个属性后,控制台依旧出现,请问这是什么情况?
我把这句MyBean mybean = (MyBean) ac.getBean("mybean");注释掉后,bean加上lazy-init =“false”运行,控制台上只有spring启动的信息;再将lazy-init =“true"设置,运行
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。