Spring的Bean作用域 scope屬性指定Bean是否為單例物件
阿新 • • 發佈:2018-12-09
Bean作用域:
預設屬性scope="singleton"
表示容器初始化建立這一個Bean 單例的
Hello person1 = (Hello) applicationContext.getBean("helloSet1");
Hello person2 = (Hello) applicationContext.getBean("helloSet1");
System.out.println(person1==person2);
輸出:
true
修改:scope=”prototype” 每次從IOC容器中獲取的物件都是重新創造的一個物件 輸出:false *
public Hello() {
System.out.println("初始化一個物件");
}
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
直接輸出:
初始化一個物件
總結:
表示容器初始化的時候的同時建立Bean物件,
當下次獲取物件的時候直接返回一開始建立的那個物件
而scope=”prototype” 容器初始化的時候沒有建立物件, 只有當從容器中獲取Bean的時候會建立一個新的Bean例項物件 呼叫幾次就建立幾個新的物件