spring transakcje

0

Witam

Mam kilka pytań na temat transakcji w springu. Domyślnie TransactionManager działa w oparciu o proxy i adnotacje, dodatkowo lokalne wywołania metod w tym samym beanie nie ignorują adnotacie Transactional, ponieważ nie ma wtedy wywołania metody poprzez proxy.

Zastanawiam się nad opcją "aspectJ" zamiast proxy. Jeśli ustawimy TransactionManager w tryp aspectJ wtedy jak rozumiem nie korzystamy z proxy tylko opakowanie metod w transakcje dokonuje się w trakcie kompilacji.

Czy wtedy wywołanie metod w tym samym beanie będzie respektowało ustawienia atrybutów transakcji? Jak rozumiem dzięki aspectJ nasze transakcje będą się wykonywać szybciej, ponieważ wszystko dodawane jest w czasie kompilacji zamiast proxy w runtime ? Czy są jeszcze jakieś ważne kwestie jeśli chodzi o ustawienie proxy vs aspectj ?

Chciałbym jak najbardziej przyspieszyć wywołania metod w ramach transakcji w springu. Czy ustawienie trybu aspectJ przyspieszy wywołania w ramach transakcji ?

Dziękuję ślicznie za odpowiedzi

1

Ale ten narzut to jest ... wywołanie metody przez proxy obiekt, czy to taki wielki problem dla twojego giga-hiper wielkiego projektu ?

Szukaj oszczędności gdzie indziej, nie wiem, nie wywołuj czystych SQL'i, rób NamedQuery jak jpa używasz, czy coś.

0

Jeżeli chodzi o problem z wywoływaniem metody z tej samej klasy i niełapanie transakcji ponieważ nie idzie to przez proxy, to prawdopodobnie wystarczy (i pewnie trzeba) zreflektować logikę. Jedno wywołanie metody z beana powinno być w transakcji całe, albo w ogóle, a nie tak jak piszesz, po części. Może warto rozbić to na 2 beany?

1 użytkowników online, w tym zalogowanych: 0, gości: 1