2010-09-29 22 views
10

Ich frage mich nur, warum die Kombination von Spring und Hibernate so populär ist, wenn es möglich wäre, Hibernate zu verlassen und nur Spring ORM zu verwenden?Spring ORM oder Hibernate

Antwort

10

Spring ist beliebt, weil es sich um den Code zum Ausschneiden und Einfügen aus dem ORM-Framework kümmert. Think try ... finally Blöcke, die sich mit dem Session-Objekt (Hibernate oder anders) und commit/rollback (Transaktionen).

Transaktionsverwaltung ist auch die Stärke von Spring. Sie können Transaktionen mithilfe von Anmerkungen oder in der Spring-XML-Konfigurationsdatei definieren. In der Konfigurationsdatei besteht der Vorteil darin, dass Sie mit Platzhaltern angeben können, dass beispielsweise alle Suchmethoden in bestimmten Paketen Transaktionen unterstützen sollen (PROPAGATION_SUPPORTS), aber alle Methoden zum Einfügen, Aktualisieren und Löschen Transaktionen erfordern (PROPAGATION_REQUIRED).

Also würde ich immer Spring, unabhängig von der ORM-Framework verwenden. Wenn Sie einfache Anforderungen oder nicht so viel JDBC-Code haben, können die JDBC-Vorlagen von Spring für Sie ausreichen. Und mit Spring können Sie bei Bedarf problemlos auf den Ruhezustand aktualisieren.

28

Spring hat kein eigenes ORM. Sie können Hibernate, TopLink, iBatis oder JDO verwenden.

Sie können Spring JDBC verwenden, aber Sie müssen alle Mapper auf eigene Faust schreiben.

Es ist ratsam, ORM außerhalb der Schleife zu belassen, wenn Sie dynamisches SQL oder die Komplexität einer ORM-Lösung nicht mögen. Sie können auch eine Abhängigkeit eliminieren, indem Sie die Persistenz selbst aussortieren.

4

Die anderen Antworten sind wirklich gut. Aber um das "warum ist Frühling/Hibernate" so beliebt zu beantworten - IMHO ist es, weil sie beste Technologien sind, die es Ihnen ermöglichen, schneller zu gehen. Spring macht viel mehr als nur Dependency Injection und Transaktionen. Die bieten Lösungen für JMS, Terminplanung und andere Dinge. Außerdem sind sie kampferprobt und gut geschrieben. Sie ermöglichen es Ihnen, sich auf Ihre geschäftlichen Bedürfnisse zu konzentrieren und einige der harten Sachen verschwinden zu lassen.

All dies bedeutet nicht, dass Sie keine guten Entwickler benötigen, um eine gute Lösung zu implementieren.

+0

iBatis ist heutzutage aufgrund seiner Konsistenz mit SQL beliebter. – ZhaoGang