我正在使用 Spring 3 和 Hibernate 4
如何在非 ManagedBean 中使用以下内容
@Inject
EmployeeService employeeService
或者,如果我想访问 DAO 方法,我必须将其设为 ManagedBean
@Named("mymanagedbean")
@ViewAccessScoped
我有一些 Converter
类,为了访问 DAO
服务方法,我必须将其用作 ManagedBean,即使它们不是 ManagedBean。
调用 DAO
服务方法的最佳方法是什么?
谢谢
最佳答案
您将需要实现 Spring 接口(interface) ApplicationContextAware
然后设置ApplicationContext。然后你需要提供静态方法来获取bean实例。
public class SpringApplicationContext implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
public void setApplicationContext(ApplicationContext context)
throws BeansException {
CONTEXT = context;
}
public static Object getBean(String beanName) { ...}
public static <T> T getBean(Class<T> arg0) {...}
然后在您的非托管 bean 中您可以调用 SpringApplicationContext.getBean
方法通过传入EmployeeService.class
作为参数或 bean 名称作为参数。
关于java - 从非托管bean访问DAO服务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128228/