Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';具有Java配置的Autowire SessionFactory_Java_Spring_Hibernate_Autowired - Fatal编程技术网

Can';具有Java配置的Autowire SessionFactory

Can';具有Java配置的Autowire SessionFactory,java,spring,hibernate,autowired,Java,Spring,Hibernate,Autowired,配置类名以黄色标记,表示未为此文件配置应用程序上下文 我的配置类: 我已经注释掉了ds.setPassword,因为我的测试数据库没有任何密码保护。另外,hibernate不会从我的实体类自动创建表,我认为这是因为Spring没有读取这个配置文件 尝试通过以下方式在myDaoImpl类中autowireSessionFactor时: @Resource(name = "sessionFactory") private SessionFactory session; 错误表示在上下文初始化过程中

配置类名以黄色标记,表示未为此文件配置应用程序上下文

我的配置类:

我已经注释掉了
ds.setPassword
,因为我的测试数据库没有任何密码保护。另外,hibernate不会从我的
实体
类自动创建表,我认为这是因为Spring没有读取这个配置文件

尝试通过以下方式在my
DaoImpl
类中
autowire
SessionFactor时:

@Resource(name = "sessionFactory")
private SessionFactory session;
错误表示在上下文初始化过程中遇到
异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“personDaoImpl”的bean时出错:自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动关联字段:private org.hibernate.SessionFactory com.tornikeshelia.dao.PersonDaoImpl.SessionFactory;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项类型为[org.hibernate.SessionFactory]的符合条件的bean:应至少有1个bean符合此依赖项的autowire候选项的条件。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

解决方案: 问题是1)配置包的位置,以及2)类名上的警告消息中(由于消息-
未为此文件配置应用程序上下文而变黄)
因此,如果有人有同样的问题,这里有一个解决方案-

1) 将配置包移动到模型包所在的父包中

2) 单击类名(单击类名上的任意位置)将出现黄色灯泡,单击它,然后单击
配置应用程序上下文
,将出现一个新选项卡,您应在其中选择该类并按
确定


尝试编辑配置类并更新TransactionManager()bean:


您的错误可能是因为您尝试注入尚未创建bean的bean。

尝试编辑配置类并更新TransactionManager()bean:


您的错误可能是因为您试图注入一个尚未创建bean的bean。

您使用的是spring boot还是spring?我使用的是spring和什么版本的Hibernate?答案可能是:(1)使用Boot来配置这个并放弃整个手动配置,(2)使用JPA接口来休眠(现在推荐使用这个接口),以及(3)使用SpringDataJPA为您处理所有数据访问。如果您可以使用SpringBoot肯定会更好,但在遗留应用程序中,这并不总是容易的。如果你启动一个新的应用程序,你应该考虑使用Spring Buo.Hibernate 4.3.5,你使用Spring Bug还是Spring?我用的只是Spring和Hibernate的什么版本?答案可能是:(1)使用Boot来配置这个并放弃整个手动配置,(2)使用JPA接口来休眠(现在推荐使用这个接口),以及(3)使用SpringDataJPA为您处理所有数据访问。如果您可以使用SpringBoot肯定会更好,但在遗留应用程序中,这并不总是容易的。如果你启动一个新的应用程序,你应该考虑使用Spring Bug。Hibernate 4.3.5 Frimali编辑了我的错误消息,你的代码没有帮助。可能错误信息会清除我编辑的错误信息,你的代码没有帮助。也许错误信息会清除一些东西
@Resource(name = "sessionFactory")
private SessionFactory session;
    @Bean
    public HibernateTransactionManager transactionManager(){
        HibernateTransactionManager txManager = new HibernateTransactionManager();
        txManager.setSessionFactory(sessionFactory().getObject());
        return txManager;
    }