2010-11-09 11 views
14

Z tym problemem zmagam się już od kilku godzin.Konfiguracja transakcji dla skonfigurowanego kontekstu Spring Java

Próbuję przenieść moją wiosenną konfigurację XML do pełnej konfiguracji opartej na języku Java.

Używam AnnotationConfigApplicationContext jako implementację kontekstu.

Mam problemy ze znalezieniem odpowiednik Java dla tej linii, od mojej starej konfiguracji XML:

<tx:annotation-driven transaction-manager="transactionManager" /> 

W rezultacie sprężyna nie zarządzać transakcji.

W mojej konfiguracji Java zainicjowałem odpowiednie komponenty dla transakcji: fabryka sesji, menedżer transakcji itd., Ale bez tej linii nie jest używany żaden serwer proxy transakcji, więc transakcje nie są faktycznie realizowane.

Moje pytanie brzmi: jak przetłumaczyć tę linię do mojej konfiguracji kontekstu Java lub jak rozwiązać problem w inny sposób.

Każda pomoc jest doceniana. Dzięki.

Odpowiedz

2

Z mojego doświadczenia wynika, że ​​nie jest praktycznie całkowicie zastępować konfigurację XML konfiguracją stylu @Bean. Niektóre rzeczy powodują, że więcej sensowności jest skonfigurowanych w języku Java, w szczególności własnych definicji komponentów bean. Ale jeśli chodzi o deklaracje typu infrastruktury, takie jak <tx:annotation-driven>, składnia XML jest dużo bardziej zwięzła.

Ty może odtworzyć ten sam efekt w czystej Javie, ale kończy się uciążliwe i nieintuicyjne, ponieważ takie rzeczy jak <tx:annotation-driven> są zazwyczaj interakcje złożonych klas infrastruktury Wiosna niskopoziomowych, że naprawdę nie chcą dotykać.

Moja rada - połącz i łącz, używając każdej z Javy i XML dla własnych mocnych stron. Jest to dość łatwe do zrobienia. Wolę zachować normalne klasy XML ApplicationContext, a następnie zadeklarować moje klasy @Configuration jako komponenty bean w tym kontekście XML, obok rzeczy takich jak <tx:annotation-driven>.

+0

Czy nadal czuć się w ten sposób teraz, 4 lata później, @skaffman? – GaZ

+1

Nie, nie sądzę. Styl adnotacji jest znacznie bogatszy w nowoczesnych wersjach wiosennych niż na wiosnę 3. – skaffman

+0

Dzięki za aktualizację. Tak właśnie podejrzewałem. Próbujemy zaktualizować nasz starszy kod do Wiosny 4, a jako część tego procesu chciałbym wyeliminować jak najwięcej naszej konfiguracji XML (o ile to ma sens, oczywiście, ale czuję, że w większości miejsc podejście oparte na adnotacji jest lepszym wyborem). – GaZ

Powiązane problemy