1、工厂
package com.ba02;
public class ServiceFactory {
public ISomeService getSomeService() {
return new SomeServiceImpl();
}
}
2、测试类
package com.ba02;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
public class MyTest {
@Test
public void test01() {
ISomeService service = new ServiceFactory().getSomeService();
service.doSome();
}
@Test
public void test02() {
ApplicationContext ac = new ClassPathXmlApplicationContext("com/ba02/applicationContext.xml");
ISomeService service = (ISomeService) ac.getBean("myService");
service.doSome();
}
}
3、配置文件
<?xml version="1.0" encoding="UTF-8"?><!-- 注册动态工厂 -->
<bean id="factory" class="com.ba02.ServiceFactory"/>
<!-- 注册Service 动态工厂bean-->
<bean id="myService" factory-bean="factory" factory-method="getSomeService"/>