java - Spring 注入(inject)使用静态方法调用的实例创建的对象

标签 java spring factory code-injection

我创建了一个对象,如下所示:

 serviceValidatorObject = ServiceFactory.getInstance().getServiceValidator()

该对象是通过调用静态方法 getInstance(),然后调用实例方法 getServiceValidator() 创建的。

我想使用 Spring 注入(inject)来配置它。

问题是 ServiceFactory 是我无法更改的遗留代码。

我知道 Spring 支持通过工厂类静态或实例方法进行注入(inject),但是我是否可以在 Spring 中配置上面的对象创建?

最佳答案

<bean id="exampleBean"
      factory-bean="myFactoryBean"
      factory-method="createInstance"/>

就您而言,exampleBean 是您的 serviceValidatorObject,factory-bean 是 serviceFactory,工厂方法是 getServiceValidator。您可能也需要这个:

<bean id="serviceFactory"
      factory-method="getInstance"/>

关于java - Spring 注入(inject)使用静态方法调用的实例创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7475235/

相关文章:

java - 从 JAR 中获取文件

javascript - 引用工厂内的Angularjs工厂对象

java - Spring Boot 在 web.xml 中启用 <async-supported>

java - 已构建异常 : This object has already been built

java - 在 linux 中设置 java_home 和 path 环境变量

java - 数组操作,在末尾添加元素,将其他元素推后

java - Spring 启动 1.4 : Executing Method after Liquibase finished

javascript - 在工厂类中实现继承,而无需在 Javascript 中复制代码

c# - 我如何强制在 C# 中的结构上使用工厂

java - 如何使用自定义 TableModel 删除 JTable 中的行