Spring2.5学习1.3_三种实例化bean的方式
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(); } }结果:
原csdn博客地址:http://write.blog.csdn.net/postlist