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是相同实例