【发布时间】:2011-06-09 21:42:16
【问题描述】:
我有一个在 applicationContext 中配置的 spring bean,如下所示:
<bean id="beanIRPlus" class="org.jadefalcon.demo.server.Spring.beans.BeanIRPlus" />
然后我有一个如下所示的 Hibernate 服务,我正在尝试将其注入 Spring bean。通常,例如,如果我使用注入到我的控制器中的原型 bean 并且具有注入的 Hibernate 服务,它可以正常工作,但是对于这个特定的 bean,它是一个单例,因此它是在应用程序启动时创建的。我什至确保将 bean 声明放在 applicationContext.xml 文件的最后,认为它可能必须放在与 Hibernate 相关的任何内容之后,但问题仍然存在。它给出了一个空指针异常,即CasesService 对象不存在。非常感谢任何关于我做错了什么的建议:
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.jadefalcon.demo.domain.Cases;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service("casesservice")
@Transactional
public class CasesService {
protected static Logger logger = Logger.getLogger("service");
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
public void add(Cases cases) {
logger.debug("Saving new search");
// Retrieve session from Hibernate
Session session = sessionFactory.getCurrentSession();
// Save
session.save(cases);
}
}
【问题讨论】:
-
请同时发布配置文件(applicationContext.xml)
标签: java hibernate spring dependency-injection autowired