按照lazy-init一文前三步设好项目后,运行如下代码
package com.jd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
Object object = applicationContext.getBean("d");
System.out.println(object);
object = applicationContext.getBean("d");
System.out.println(object);
applicationContext.close();
}
}
输出结果为
可以看到,看似创建了两次对象,但其实他们是同一个对象
这是Bean中的scope关键字决定的,如果我们将scope的值设定为prototype,那么就可以创建多个不同的对象,例如
此时输出为
值得注意的是,scope的默认值为singleton,即只产生同一个对象