1.使用类构造器
2.使用静态工厂
3.使用实例工厂
没有做改动的文件省略。。。可以参考前两篇文章中贴出的代码
配置文件beans.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 id="personService" class="xjj.service.impl.PersonServiceBean"></bean>
<!-- 静态工厂 -->
<bean id="personService2" class="xjj.service.impl.PersonServiceBeanFactory"
factory-method="createPersonServiceBean"/>
<!-- 实例工厂 -->
<!-- 先对工厂类进行实例化,然后使用工厂实例里的工厂方法 -->
<bean id="personServiceFactory" class="xjj.service.impl.PersonServiceBeanFactory"/>
<bean id="personService3" factory-bean="personServiceFactory" factory-method="createPersonServiceBean2"/>
</beans>
工厂类:PersonServiceBeanFactory.java
package xjj.service.impl;
public class PersonServiceBeanFactory {
/**
* 方法描述:静态工厂方法
* @return
*/
public static PersonServiceBean createPersonServiceBean(){
return new PersonServiceBean();
}
/**
* 方法描述:实例工厂方法
* @return
*/
public PersonServiceBean createPersonServiceBean2(){
return new PersonServiceBean();
}
}
SpringTest.java
package junit.test;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import xjj.service.PersonService;
public class SpringTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void instanceSpring(){
// XjjClassPathXMLApplicationContext ctx = new XjjClassPathXMLApplicationContext("beans.xml");
// PersonService personService = (PersonService)ctx.getBean("personService");
// personService.save();
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
// 构造方法
PersonService personService = (PersonService)ctx.getBean("personService");
personService.save();
// 静态工厂
PersonService personService2 = (PersonService)ctx.getBean("personService2");
personService2.save();
// 实例工厂
PersonService personService3 = (PersonService)ctx.getBean("personService3");
personService3.save();
}
}
结果: