我正在使用Java基础配置中的Spring。我想使用工厂方法初始化一个bean。在XML中,这样做如下:
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
我该如何在Java中做同样的事情?
我认为这是一个类似这里的问题。
在您的Java配置中,您需要定义工厂bean(processEngine)并调用工厂方法(getRepositoryService),以定义repositoryService。
根据其他答案的命名方式,它看起来像:
@Configuration
public class Config {
@Bean
public ProcessEngine processEngine() {
return new ProcessEngine();
}
@Bean
public RepositoryService repositoryService() {
return processEngine().getRepositoryService();
}
}
这应该很简单。你有一个名为processEngine的工厂,在工厂内部有一个名为getRepositoryService的方法,所以它应该在某个地方类似于:
public class ProcessEngine {
public XXXX getRepositoryService() {
...
}
}
repositoryService()
旁边,有一个调用identityService(){return processEngine().getIdentityService();}
和一堆其他的“服务”。我们如何避免多次运行new ProcessEngine()
? - fedd