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"?>
<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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 注册动态工厂 -->
<bean id="factory" class="com.ba02.ServiceFactory"/>
<!-- 注册Service 动态工厂bean-->
<bean id="myService" factory-bean="factory" factory-method="getSomeService"/>
</beans>