我正在使用一个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