3 实例化bean的方法
三 实例化bean的方法
三 实例化bean的方法 1接口 package cn.itcast.service; public interface PersonService { /* (non-Javadoc) * @see cn.itcast.service.impl.PersonService#save() */ public void save(); } 实现类 package cn.itcast.service.impl; import cn.itcast.service.PersonService; public class PersonServiceBean implements PersonService { /* (non-Javadoc) * @see cn.itcast.service.impl.PersonService#save() */ /* (non-Javadoc) * @see cn.itcast.service.impl.PersonService#save() */ public void save(){ System.out.println("我是save()方法"); } } 静态工厂类 package cn.itcast.service.impl; /** * 静态工厂方法实例化bean * @author Administrator * */ public class PersonServiceBeanFactory { public static PersonServiceBean create(){ return new PersonServiceBean(); } } 实例工厂方法实例化 package cn.itcast.service.impl; public class PersonServiceBeanNotStaticFactory { public PersonServiceBean create(){ return new PersonServiceBean(); } } 请看配置文件配置 <?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="cn.itcast.service.impl.PersonServiceBean"></bean> <!-- 静态工厂的实例化 方式同样是建一个接口 建一个接口实现类 同时建一个工厂类 然后把工厂类给配置上 并且配置其创建实例的方法 --> <bean id="personservicefactory1" class="cn.itcast.service.impl.PersonServiceBeanFactory" factory-method="create"></bean> <!-- 实例工厂方法实例化 同样是建一个接口 一个实现类 一个工厂类 不过工厂创建的实例的方法不是静态的 并且把这个方法配置--> <bean id="notstaticfactory" class="cn.itcast.service.impl.PersonServiceBeanNotStaticFactory"></bean> <bean id="personservicefactory2" factory-bean="notstaticfactory" factory-method="create"></bean> </beans> 调用 package junit.test; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.service.PersonService; public class SpringTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void instanceSpring(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); /** * 方式一类构造器实例化方法获取实例 类构造器就是接口实现类缺省的默认的构造方法 */ //PersonService personService = (PersonService)ctx.getBean("personservice"); //personService.save(); /** * 方式二 静态工厂方法实例化 */ //PersonService personService = (PersonService)ctx.getBean("personservicefactory1"); //personService.save(); /** * 方式三 实例工厂方法实例化 */ PersonService personService = (PersonService)ctx.getBean("personservicefactory2"); personService.save(); } } 好了 就讲到这吧 完毕 end!