如何在Java配置中使用工厂方法初始化Spring bean?

6

我正在使用Java基础配置中的Spring。我想使用工厂方法初始化一个bean。在XML中,这样做如下:

<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />

我该如何在Java中做同样的事情?

2个回答

6

我认为这是一个类似这里的问题。

在您的Java配置中,您需要定义工厂bean(processEngine)并调用工厂方法(getRepositoryService),以定义repositoryService。

根据其他答案的命名方式,它看起来像:

@Configuration
public class Config {
     @Bean
     public ProcessEngine processEngine() {
         return new ProcessEngine();
     }

     @Bean
     public RepositoryService repositoryService() {
         return processEngine().getRepositoryService();
     }
}

我知道这段代码的来源。在 repositoryService() 旁边,有一个调用 identityService(){return processEngine().getIdentityService();} 和一堆其他的“服务”。我们如何避免多次运行 new ProcessEngine() - fedd
答案:https://stackoverflow.com/questions/24116496/springxml-config-convert-to-java-config - fedd

1

这应该很简单。你有一个名为processEngine的工厂,在工厂内部有一个名为getRepositoryService的方法,所以它应该在某个地方类似于:

public class ProcessEngine {
     public XXXX getRepositoryService() {
         ...
     }
}

如何为此工厂方法定义一个Spring Bean? - khateeb
你确定是 ProcessEngine 而不是 processEngine 吗? - Lajos Arpad
3
对方希望仅使用Java代码完成,而不使用xml。他分享了xml代码并要求提供Java等效代码。 - Lajos Arpad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接