spring Bean的作用域:
scope可以取值:
* singleton:每次调用getBean的时候返回相同的实例
* prototype:每次调用getBean的时候返回不同的实例
spring中默认的是单实例(singleton)
配置文件中有个bean,如bean1
测试代码:
就这样简单。
scope可以取值:
* singleton:每次调用getBean的时候返回相同的实例
* prototype:每次调用getBean的时候返回不同的实例
spring中默认的是单实例(singleton)
配置文件中有个bean,如bean1
<!--
<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="singleton"/>
-->
<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="prototype"/>
测试代码:
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import junit.framework.TestCase;
public class ScopeTest extends TestCase {
private BeanFactory factory;
@Override
protected void setUp() throws Exception {
factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");
}
public void testScope1() {
Bean1 bean11 = (Bean1)factory.getBean("bean1");
Bean1 bean12 = (Bean1)factory.getBean("bean1");
if (bean11 == bean12) {
System.out.println("bean11==bean12");//如果默认,bean11 和bean12就是同一个实例,所以是相同的。
}else {
System.out.println("bean11!=bean12");//如果配置了prototype,bean11 和bean12就是不同实例。
}
}
}
就这样简单。