2015-04-22 138 views
3

我在我的Java项目中使用过Spring MVC。Spring的ORM(休眠)与休眠

我避免了SPRING HIBERNATE,因为它似乎让我的代码非常紧密地耦合在一起。现在,即使将应用程序移动到struts,我的服务层也可以正常工作(因为我使用了核心hibernate,它不是Spring提供的)。

我想一些有经验的开发人员来回答这个:

什么是使用弹簧休眠的原因是什么?我知道它提供了一些功能,但是有一个折衷,因为它确实使你的代码紧密结合在一起,所以你不能在其他地方重新使用服务,因为它们将基于spring的休眠API工作

+3

Spring-Hibernate不存在。 Spring不提供任何Hibernate。 Spring只允许声明式地使用hibernate事务。但它是真正的,真正的Hibernate,你使用真正的,真正的Hibernate API。 –

+1

不知道有一个spring-hibernate api。顺便说一句,如果你编程到一个界面,你永远不会遇到问题的可重用性。 – dit

+0

@JBNizet冬眠我的意思是弹簧ORM(我正在使用休眠) –

回答

1

根据我的经验弹簧Hibernate提供:

  • 的模板,使“易”它的配置
  • 的持久化引擎可以作为一个依赖,所以你可以改变它,只要你想不修改JPA注解你的模型类
  • 它应该是更有效地管理XA交易

,并没有别的...

0

以及复杂的问题,我可以用另一个问题回答一下:

什么是使用Hibernate的原因是什么?我知道它提供了许多功能,但是有一个折衷,因为它确实让你的代码紧密结合在一起,你不能在其他地方重新使用服务,因为它们会基于hibernate API工作。

为什么不使用直接JDBC和SQL?

为了提高问题的效率:选择一个框架总是伴随着一种折衷:与框架相结合。

因此,框架提供的功能无论是否值得付出。

+0

,即使我使用JDBC OR SQL ..它不会让我的代码紧密耦合..我可以重新使用服务..但是当涉及到春季休眠..我将不得不修改我的代码很多重新使用我的服务。 –

4

弹簧具有7种不同的模块,每个模块是独立的可以使用它们中的任何一个或多个

  • 核心容器
  • Spring上下文
  • 弹簧AOP
  • 弹簧DAO
  • 弹簧ORM
  • Spring Web模块
  • Spring MVC框架
你想了解的ORM集成

相信我,它没有任何的紧耦合与服务层

,你可以在同一时间对业务层使用Spring MVC支杆-orm + hibernate没有紧密的耦合,更多的是spring提供事务管理。hibernatetemplate支持,你不需要关心会话和事务管理,当然也很容易集成和配置。

+0

谢谢..我现在可以移动我的代码并在struts中重新使用,您确定编写的代码具有所有的spring orm细节可以重用吗? –

+0

当然你可以使用MVC和服务层之间没有依赖关系,都是完全分开感染它的Spring的力量。 –