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

kha*_*eeb 6 java spring

我在基于 Java 的配置中使用 Spring。我想使用工厂方法初始化一个 bean。在 XML 中,它是这样完成的:

<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

在你的java配置中,你必须定义工厂bean(processEngine)并在定义repositoryService时调用工厂方法(getRepositoryService)

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

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

     @Bean
     public RepositoryService repositoryService() {
         return processEngine().getRepositoryService();
     }
}
Run Code Online (Sandbox Code Playgroud)


SMA*_*SMA 1

应该很简单。您有一个名为 processEngine 的工厂,并且在工厂内有 getRepositoryService 方法,因此它应该类似于:

public class ProcessEngine {
     public XXXX getRepositoryService() {
         ...
     }
}
Run Code Online (Sandbox Code Playgroud)

  • 该操作员希望仅使用 Java 代码来完成此操作,而不使用 xml。他分享了 xml 代码并要求提供 Java 等效代码。 (3认同)