Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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
Java 添加项目的右spring配置_Java_Spring_Hibernate - Fatal编程技术网

Java 添加项目的右spring配置

Java 添加项目的右spring配置,java,spring,hibernate,Java,Spring,Hibernate,我有一个工作的SpringHibernate项目,我决定将这个项目的一部分转移到一个新的项目中,以获得类似于基本项目的东西。 这个新的基础项目包含一些用于hibernate的dao类和许多spring注释。所以我成功地创建了它并将其发布到我的存储库中。在那之后,我把它像依赖一样添加到我的第一个项目中。我还将基本项目的包添加到spring配置中。 现在我有了一个没有spring/hibernate配置的基本项目。另一个项目依赖于base one,这个项目有spring/hibernate配置 现在

我有一个工作的SpringHibernate项目,我决定将这个项目的一部分转移到一个新的项目中,以获得类似于基本项目的东西。 这个新的基础项目包含一些用于hibernate的dao类和许多spring注释。所以我成功地创建了它并将其发布到我的存储库中。在那之后,我把它像依赖一样添加到我的第一个项目中。我还将基本项目的包添加到spring配置中。 现在我有了一个没有spring/hibernate配置的基本项目。另一个项目依赖于base one,这个项目有spring/hibernate配置

现在我收到了很多运行时错误。 1.基本项目中的我的服务类无法从基本项目中的另一个包自动连接DAO类。我把它放在一个包裹里后,问题就解决了。但是我不太喜欢它。 2.我的DAO方法在运行时“没有绑定到线程的Hibernate会话,并且配置不允许在这里创建非事务性会话”。但以前,当我有一个项目时,他们工作得很好

我是否需要在基本项目中配置spring?我怎样才能把这些事情做好呢

更新

现在是spring事务管理器中的问题。 在基本项目中,我有一个带有dao类的基本抽象控制器。在main类中,我有一个继承基本控制器的控制器。当我在服务器上运行project时,当基本dao调用sessionFactory.getCurrentSession()时,我收到“没有绑定到线程的Hibernate会话”。 但在我拆分这个项目之前,一切都很好。如果我从junit运行Dao方法,它们也可以正常工作

斯洛伐克语 问题是在“上下文:组件扫描”中添加了一些包。这就产生了这种效果。
感谢各位的回复。

如果您在主项目(而不是基本项目)中为dao/services使用@Service或@Component注释,则需要在spring上下文xml中指定扫描包。这应该行得通


hibernate实体映射也可以做同样的事情。在主项目中,使用SpringLocalSessionFactoryBean设置hibernate实体扫描来自基础项目的包。这同样适用于您,因为它适用于我。

Spring配置文件可以位于类路径中的任何位置(基本项目、主项目…)。您只需将它们添加到Web.xml文件的上下文中:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:/applicationContext-context1.xml         
        classpath:/applicationContext-context2.xml
        classpath:/applicationContext-context3.xml
        /WEB-INF/applicationContext-context4.xml 
    </param-value>
</context-param>

上下文配置位置
类路径:/applicationContext-context1.xml
类路径:/applicationContext-context2.xml
类路径:/applicationContext-context3.xml
/WEB-INF/applicationContext-context4.xml
我认为最好像现在这样将它们都放在主应用程序中(而不是在基本库中)