Spring Bean的作用域
- 使用Bean的scope属性来配置bean的作用域
-singleton:默认值,容器初始时创建bean实例,在整个容器的生命周期内只创建这一个bean。单例的。
-prototype:原型的,容器初始化时不创建bean的实例,而在每次请求时都创建一个新的Bean实例,并返回。
<bean id="dogs" class="com.metadata.auto.Dog" scope="singleton"></bean>
结果:
ApplicationContext ioc=new ClassPathXmlApplicationContext("beans-extend.xml");
com.metadata.auto.Dog dog=ioc.getBean("dogs", com.metadata.auto.Dog.class);
com.metadata.auto.Dog dog2=ioc.getBean("dogs", com.metadata.auto.Dog.class);
System.out.println(dog==dog2);
输出:dog实例创建
true
<bean id="dogs" class="com.metadata.auto.Dog" scope="prototype"></bean>
结果:
ApplicationContext ioc=new ClassPathXmlApplicationContext("beans-extend.xml");
com.metadata.auto.Dog dog=ioc.getBean("dogs", com.metadata.auto.Dog.class);
com.metadata.auto.Dog dog2=ioc.getBean("dogs", com.metadata.auto.Dog.class);
System.out.println(dog==dog2);
输出:dog实例创建
dog实例创建
false