我是Java / Spring的新手,我正在尝试整理一个简单的应用程序,其中包括一些基本的CRUD操作,我想使用Hibernate进行数据访问。
我正在使用Maven作为我的构建工具。我的问题是:如何找出使用Hibernate需要哪些依赖项?例如,我使用的是Spring 3.0.6,但我怎么知道哪个版本的Hibernate可以用于那个版本的Spring?更重要的是,如果有多个可能的Hibernate依赖项,我怎么知道哪些包含我需要的功能?到目前为止,这似乎是部分阅读文档和部分反复试验。
是否有明确的方法可以了解哪些Maven依赖项与某些版本的其他依赖项一起使用?是否有哪些依赖项用于特定的功能位?
谢谢,
詹姆斯。
答案 0 :(得分:4)
我开始使用新框架时遵循以下步骤:
在框架网站上搜索maven依赖关系定义。如果你找不到任何依赖关系定义,他们只需谷歌“ frameworkname _version_ maven依赖”,你很可能会找到必要的定义,以及必要的存储库信息。例如,您可以在mvnrepository.com上找到hibernate的依赖关系定义,并在Hibernate 3.6.8 release page上找到必要的工件存储库信息:
工件已全部发布到位于http://repository.jboss.org/nexus/content/groups/public-jboss/的org.hibernate groupId下的JBoss Nexus存储库
哪些依赖项是必需的以及哪些依赖项是可选的,完全取决于要使用的框架。例如,为了使用hibernate,如Hibernate Quick Start Guide所述:
hibernate-core:包含所有Hibernate类的主要工件,在packageorg.hibernate中。您需要使用本机Hibernate API构建应用程序。它包括在hbm.xml文件中使用本机Hibernate映射的功能,以及注释。
关于兼容性问题(哪个版本的hibernate与spring 3.0.6兼容),我只能说你必须阅读这些框架的集成手册。由于Spring和Hibernate是两个完全不同的框架,我认为你不能找到一个恒定的位置来寻找版本兼容性矩阵或类似的东西。
答案 1 :(得分:1)
Maven的目的是避免手工处理依赖关系。只需选择要使用的Hibernate版本并将其包含在您的pom中; Spring支持许多不同的版本。
如果您知道要使用的Spring部分,请将这些部分包含在您的pom中;他们将包括他们自己的要求。
是否存在您遇到问题的特定模块和/或版本组合?
答案 2 :(得分:0)
确定您拥有所有依赖项的唯一方法是运行您的应用。 Maven为您解决了传递依赖关系,因此您可以通过编译java代码快速检测丢失的依赖关系。 但是,在Web应用程序中,只有运行时才需要许多依赖项,因此在编译时不会检测到它们。
您可以运行mvn dependency:tree
来查找依赖关系,并通过运行mvn dependency:analyze
来分析是否需要它们。
答案 3 :(得分:0)
只要它们稳定,就可以使用最新的产品。
从hibernate和spring core,context,tx开始。
在你添加了一些之后你可能会发现其他东西都缺失了。
尝试并且错误听起来不太好,但它对于弹簧依赖性非常有用。