Spring Bean的作用域

public class SpringTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test public void instanceSpring(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersonService personService1 = (PersonService)ctx.getBean("personService5");
		PersonService personService2 = (PersonService)ctx.getBean("personService5");
		System.out.println(personService1==personService2);
		PersonService personService3 = (PersonService)ctx.getBean("personService4");
		PersonService personService4 = (PersonService)ctx.getBean("personService4");
		System.out.println(personService3==personService4);
	}
}


得到true
false

<bean id="personService4" class="cn.itcast.service.impl.PersonServiceBeanFactory"
  		factory-method="createPersonServiceBean" scope="prototype"></bean>	   
  		<bean id="PersonServiceBeanFactory" class="cn.itcast.service.impl.PersonServiceBeanFactory" scope="singleton"></bean>    
  		<bean id="personService5" factory-bean="PersonServiceBeanFactory" factory-method="createPersonServiceBean2" ></bean>


<bean>中scope属性,假如等于prototype,每次得到的getbean是不同实例
scope属性,假如等于singleton,每次得到的getbean是相同实例

你可能感兴趣的:(Bean的作用域)