Spring Init A Bean with Factory
1、静态工厂方法获取bean
<bean id="clientService" class="examples.ClientService" factory-method= "createInstance"/>
public class ClientService {
private static ClientService clientService = new ClientService();
private ClientService() {}
public static ClientService createInstance() {
return clientService;
}
}
2、工厂实例非静态方法
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="examples.DefaultServiceLocator">
<!-- inject any dependencies required by this locator bean -->
</bean>
<!-- the bean to be created via the factory bean -->
<bean id="clientService" factory-bean="serviceLocator" factory-method="createClientServiceInstance"/>
<bean id="clientService2" factory-bean="serviceLocator" factory-method="createClientServiceInstance2"/>
public class DefaultServiceLocator {
private static ClientService clientService = new ClientServiceImpl();
private DefaultServiceLocator() {}
public ClientService createClientServiceInstance() {
return clientService;
}
public ClientService createClientServiceInstance2() {
return clientService;
}
}
一个工厂的获取bean的方法可以有多个