我有一个在applicationContext中配置的spring bean,如下所示:
<bean id="beanIRPlus" class="org.jadefalcon.demo.server.Spring.beans.BeanIRPlus" />
然后,我有一个如下所示的Hibernate Service,试图将其注入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);
}
}
最佳答案
我没有看到您要如何注入它。您至少有两个选择:
xml。在控制器bean定义中定义<property name=".." ref="casesservice">
注释。使用@Autowired private CaseService service
(或@Inject
)