我创建了一个对象,如下所示:
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/