2014-10-21 18 views
18

Mam aplikację 4 wiosny. W tej chwili używam JpatransactionManager.którego menedżera transakcji powinienem użyć (JTA vs JPA)?

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

Czy możesz mi powiedzieć, jak wybrać menedżerów transakcji?

Na przykład, kiedy powinienem użyć menedżera transakcji jta i kiedy jpa oraz jakie są ich zalety i wady?

I czy wiem, że mam 2 sposoby pracy na wiosnę. Pierwszy to sposób JPA i drugi sposób hibernacji. pierwsza zawiera standardowe adnotacje java i standardowe API, a druga to implementacja hibenrate. Jeśli muszę używać JTA, muszę użyć hibernacji, a nie JPA, prawda?

Odpowiedz

19

Jeśli chcesz przekazywać transakcje zarządzane do serwera aplikacji i obsługiwać złożone transakcje między wieloma zasobami, musisz użyć narzędzia JtaTransactionManager, ale uważam, że w większości przypadków nie jest to konieczne. Przeczytaj to aby uzyskać więcej informacji http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/html/transaction.html

Potrzebują Państwo serwer aplikacji do zarządzania transakcjami?

Obsługa transakcji w ramach Spring Framework zmienia tradycyjne zasady dotyczące tego, kiedy aplikacja Java dla przedsiębiorstw wymaga serwera aplikacji.

W szczególności nie potrzebujesz serwera aplikacji po prostu dla deklaratywnych transakcji za pośrednictwem EJB. W rzeczywistości, nawet jeśli twój serwer aplikacji ma potężne możliwości JTA, możesz zdecydować, że deklaratywne transakcje Spring Framework oferują więcej mocy i bardziej produktywny model programowania niż EJB CMT.

Zwykle potrzebujesz funkcji JTA serwera aplikacji tylko wtedy, gdy aplikacja potrzebuje obsługi transakcji z wielu zasobów, , co nie jest wymagane w przypadku wielu aplikacji. Wiele aplikacji klasy wyższej korzysta z pojedynczej, skalowalnej bazy danych (takiej jak Oracle RAC). Samodzielne menedżery transakcji, takie jak Atomikos Transakcje i JOTM to inne opcje. Oczywiście, możesz potrzebować innych możliwości serwera aplikacji, takich jak Java Message Service (JMS) i Java EE Connector Architecture (JCA).

Spring Framework daje wybór, kiedy przeskalować aplikację do w pełni załadowanego serwera aplikacji. Dawno minęły czasy, gdy jedyną alternatywą dla używania EJB CMT lub JTA było napisanie kodu z lokalnymi transakcjami, takimi jak te na połączeniach JDBC, i napotkanie silnej przeróbki , jeśli potrzebujesz, aby ten kod działał globalnie, zarządzanie kontenerami transakcje. W Spring Framework, tylko niektóre definicji ziaren w pliku konfiguracyjnym, zamiast kodu , trzeba zmienić.

+0

wielkie dzięki za odpowiedź! – grep

+0

Niezłe wyjaśnienie. Dzięki !! – Akash5288

Powiązane problemy