我有一个在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

09-27 11:19
查看更多