2010-10-11 92 views
1

我有一个静态类ResourceFetcher与静态方法fetchResource(String reference)。我想将它返回的资源注入另一个类JobRunner。任何人都可以指定最干净的方式吗?我不想将ResourceFetcher转换成JobRunner。实际上,我有一个带有一组键的enum,我需要将键值对映射到JobRunner,并通过调用fetchResource获得值。弹簧注射问题

Onething要说明的是,ResourceFetcherfetchResource返回类型的对象预先String

感谢。

回答

0

如果fetchResource方法在ResourceFetcher上是静态的,为什么JobRunner不能简单地引用它?我没有看到需要注入ResourceFetcher。

+0

如果ResourceFetcher如果我想要将10个类文件中的sql文件转换为sql字符串,这将如何通用?准确地说,我在JobRunner - Map queryTempl中有一个静态映射,其中的每个值都是从ResourceFetcher作为String获取的sql查询。我想知道这是否是正确的方式去做事情。 – kuriouskat 2010-10-11 19:00:23

2
<bean id="resource" class="com.x.y.ResourceFetcher" factory-method="fetchResource"> 
    <constructor-arg value="someReference"/> 
</bean> 

然后,您可以将resource注入到您的JobRunner bean中。

+0

太好了。这也是我所期待的。如果工厂方法返回的对象不是类ResourceFetcher的类型,该怎么办? – kuriouskat 2010-10-11 18:57:51

+0

@kuriouskat:bean类型将是方法返回的任何内容,“ResourceFetcher”的类型与结果无关。 – skaffman 2010-10-11 19:23:04