我正在使用一個API,以XXXLocalServiceUtil類的形式公開服務,它們是單例對象的靜態包裝。相反,使用靜態XXXLocalServiceUtil方法我想注入XXXLocalService對象本身,直接在我的代碼使用它們,例如:動態Spring bean創建
@Named
public class MyMailingService {
@Inject UserLocalService userService;
public String mailUser(String email) {
User user = userService.getUser(email);
emailUser(user);
}
}
而且配置我applicationContext.xml
像這樣:
<beans ...>
<bean class="x.y.z.UserLocalServiceUtil" factory-method="getService"/>
<bean class="x.y.z.CompanyLocalServiceUtil" factory-method="getService"/>
...
</beans>
這完美的作品。現在,我所說的這個API有大約100個這樣的XXXLocalServiceUtil類,每個類都有自己的靜態getService
方法,它返回實際的服務。我不希望在我的applicationContext.xml
中列出所有這些服務,而是希望讓Spring爲我注入的每個XXXLocalService找到正確的XXXLocalServiceUtil類。所以我需要的是某種動態bean工廠,當然會在懶惰加載的基礎上爲我完成工作。
有人知道如何輕鬆實現這一點嗎?
你試圖把@的_ @ _ Inject_代替Autowired_,並定義xml自動裝配按類型? – richarbernal
我想你可以找到你的答案[這裏](http://stackoverflow.com/questions/4540713/add-bean-programatically-to-spring-web-app-context)。 – Reza