Zastanawiam się, dlaczego połączenie Spring i Hibernate jest tak popularne, skoro można zostawić Hibernate i używać tylko Spring ORM?Spring ORM lub Hibernate
Odpowiedz
Wiosna jest popularna, ponieważ dba o "kodowany" kod wycinania i wklejania w dowolnej strukturze ORM. Pomyśl try ... finally
bloków zajmujących się obiektem sesji (hibernacja lub nie) i commit/rollback
(transakcje).
Zarządzanie transakcją to także siła Wiosny. Możesz definiować transakcje za pomocą adnotacji lub w pliku konfiguracyjnym Spring xml. W pliku konfiguracyjnym korzyścią jest to, że można używać symboli wieloznacznych w celu określenia, że na przykład wszystkie metody wyszukiwania w niektórych zestawach pakietów powinny obsługiwać transakcje (PROPAGATION_SUPPORTS), ale wszystkie metody wstawiania, aktualizacji i usuwania powinny wymagać transakcji (PROPAGATION_REQUIRED).
Zawsze używam Springa, niezależnie od struktury ORM. Jeśli masz proste wymagania lub nie tyle kodu JDBC, to szablony JDBC Springa mogą ci wystarczyć. A Spring ułatwia aktualizację do Hibernate w razie potrzeby.
Wiosna nie ma własnej ORM. Możesz użyć Hibernacji, TopLink, iBatis lub JDO.
Możesz używać Spring JDBC, ale musisz samemu napisać wszystkich maperów.
Zaleca się pozostawienie ORM poza pętlą, jeśli nie lubisz dynamicznego SQL lub złożoności rozwiązania ORM. Możesz także zlikwidować zależność przez samodzielne uporanie się z utrwalaniem.
Inne odpowiedzi są naprawdę dobre. Ale odpowiedź na pytanie "dlaczego Spring/Hibernate" jest tak popularna - IMHO, ponieważ są one najlepszymi technologiami, które pozwalają na szybsze działanie. Wiosna to o wiele więcej niż tylko zastrzyk zależności i transakcje. Zapewnia rozwiązania dla JMS, harmonogramów i innych rzeczy. Dodatkowo są testowane i dobrze napisane. Pozwalają skupić się na potrzebach biznesowych i sprawić, że niektóre ciężkie rzeczy znikną.
Wszystko to nie znaczy, że nie potrzeba dobrych programistów do wdrożenia dobrego rozwiązania.
- 1. CannotAcquireLockException (Spring, Hibernate, Mysql)
- 2. Problemy z Spring Hibernate
- 3. Spring + EntityManagerFactory + Hibernate Listeners + Injection
- 4. Hibernate SessionFactory vs Spring LocalSessionFactoryBean
- 5. Zarządzanie sesją Spring + Hibernate przez wiele wątków
- 6. Spring Data Hibernate + Pageable: Zwraca puste wyniki
- 7. Spring Boot: Hibernate and Flyway boot order
- 8. Spring, @Transactional i Hibernate Lazy Loading
- 9. Jak mogę przekazać jdbc.properties do Spring/Hibernate?
- 10. Spring AMQP/RabbitMQ i Hibernate Transaction Mananger
- 11. Konfigurowanie EHCache dla Spring 3.1.1 i Hibernate
- 12. EJB 3 lub Hibernate 3
- 13. Styl komentarza C++:/* M ... M * /, co oznacza "M"?
- 14. Pojedyncze DAO i ogólne metody CRUD (JPA/Hibernate + Spring)
- 15. Jak mogę zaktualizować biblioteki Spring i Hibernate w IDE NetBeans?
- 16. Spring Security/JSF/Hibernate Przypadkowe przejęcie kontroli nad Tomcat?
- 17. Spring + Hibernate: Planowanie pamięci podręcznej Wykorzystanie pamięci podręcznej
- 18. Jak skonfigurować Spring, aby JPA (Hibernate) i JDBC (JdbcTemplate lub MyBatis) współdzieliły tę samą transakcję
- 19. Czy mogę używać Spring lub Guice do projektu Tomcat/Wicket/Hibernate?
- 20. NoSuchMethodError podczas uruchamiania Spring Boot Application z Hibernate JPA
- 21. Gdzie mogę znaleźć dobry przykład projektu Spring z Hibernate?
- 22. Wyjątek w trybie GWT Dev + Spring 3.1 + Hibernate 4.0.1
- 23. Pisz mniej DAO ze Spring Hibernate za pomocą adnotacji
- 24. Jak skonfigurować statystyki Hibernate w aplikacji Spring 3.0?
- 25. Spring Boot Hibernate 5 Ignoring @Table i @Column
- 26. Transakcja Spring + Hibernate trwa 25 sekund, nie robiąc nic.
- 27. NoClassDefFoundError z Spring maven hibernacji org/hibernate/ejb/HibernatePersistence
- 28. Mapowanie pola punktu geometrii PostGIS z Hibernate na Spring Boot
- 29. Spring boot - @ConditionalOnProperty lub @ConditionalOnExpression
- 30. RegEx, aby dopasować format M/RRRR, MM/RRRR, M/RR lub MM/RRJ
iBatis jest bardziej popularny w dzisiejszych czasach, ze względu na jego zgodność z SQL. – ZhaoGang