配置bean
<?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 的scope 属性来配置bean 的作用域
singleton:默认作用域。容器初始化时,创建bean 实例,在整个容器的生命周期内只创建一个bean . 是单例的
prototype:原型的。容器初始化时,不创建bean 的实例,而是每次请求时,创建一个新的bean 实例,并返回。
-->
<bean id="phone" class="com.baidu.autowire.Phone" scope="prototype">
<property name="brand" value="Mi"></property>
<property name="price" value="1999"></property>
</bean>
</beans>
测试方法:
package com.baidu.scope;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.baidu.autowire.Phone;
public class TestSpringScope {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans_scope.xml");
Phone phone = (Phone) applicationContext.getBean("phone");
Phone phone2 = (Phone) applicationContext.getBean("phone");
System.out.println(phone.equals(phone2));
}
}
运行结果:
① 当 bean 中的scope 属性配置为:singleton 时,
Phone`s Constructor....
true
② 当 bean 中的scope 属性配置为:singleton 时,
Phone`s Constructor....
Phone`s Constructor....
false