1)PersonService類:
public interface PersonService {
public abstract void save();
}
2)PersonSeBean類(繼承了PersonService類):
public class PersonServiceBean implements PersonService {
@Override
public void save() {
System.out.println("This is a save() method");
}
}
3) PersonServiceBeanFactory類:
/**
* 用來實例化Bean的工廠類(靜態和非靜態方法)
*/
public class PersonServiceBeanFactory {
// 靜態工廠方法
public static PersonServiceBean createPersonServiceBean2() {
return new PersonServiceBean();
}
// 非靜態工廠方法
public PersonServiceBean createPersonServiceBean3() {
return new PersonServiceBean();
}
}
4)Bean的XML配置文件:
<?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-2.5.xsd">
<!-- 使用類構造器實例化Bean 推薦使用 -->
<bean id="personService1" class="spring.PersonServiceBean"></bean>
<!-- 使用靜態工廠類實例化Bean 不推薦使用 -->
<bean id="personService2" class="spring.PersonServiceBeanFactory"
factory-method="createPersonServiceBean2"></bean>
<!-- 使用非非態工廠類實例化Bean 不推薦使用 -->
<bean id="personServiceBeanFactory"
class="spring.PersonServiceBeanFactory"></bean>
<bean id="personService3"
factory-bean="personServiceBeanFactory"
factory-method="createPersonServiceBean3"></bean>
</beans>
5)springTest 類:
public class springTest {
@Test
public void instanceSpring() {
//添加配置文件
ApplicationContext ctx = new
ClassPathXmlApplicationContext("spring/beans.xml");
// 使用類構造器實例化Bean
// PersonService personService1= (PersonService) ctx.getBean("personService1");
// personService1.save();
// 使用靜態工廠類實例化Bean
// PersonService personService2= (PersonService)
ctx.getBean("personService2");
// personService2.save();
// 使用非工廠類實例化Bean
PersonService personService3= (PersonService)
ctx.getBean("personService3");
personService3.save();
}
}