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();
}
}