bean的作用域决定了对于一个bean实例化的次数与方式,设置是scope属性进行设置
- singleton:默认值,容器在初始化的时候创建bean实例。在整个容器的生命周期中只会创建一次;
- prototype:原型,在容器初始化的时候不会去创建bean的实例,只是在每次请求时候就会创建一个新的bean实例,返回
使用默认属性的时候
配置xml文件
<bean id="car" class="spring.autowire.Car">
<property name="brand" value="FuTe"></property>
<property name="price" value="30000"></property>
</bean>
主函数
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans-scope.xml");
Car car1 = (Car) applicationContext.getBean("car");
Car car2 = (Car) applicationContext.getBean("car");
System.out.println(car1 == car2);
}
运行结果
使用原型属性的时候
配置xml文件
<bean id="car" class="spring.autowire.Car" scope="prototype">
<property name="brand" value="FuTe"></property>
<property name="price" value="30000"></property>
</bean>
主函数
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans-scope.xml");
Car car1 = (Car) applicationContext.getBean("car");
Car car2 = (Car) applicationContext.getBean("car");
System.out.println(car1 == car2);
}
运行结果