Chcę wiedzieć, co tak naprawdę dzieje się podczas opisywania metody za pomocą @Transactional
? Oczywiście wiem, że Spring zawinie tę metodę w Transakcji.Wiosna - @Transactional - Co dzieje się w tle?
Ale mam następujące wątpliwości:
- Słyszałem, że wiosna tworzy klasę proxy? Czy ktoś może to wyjaśnić na więcej głębokości. Co właściwie znajduje się w tej klasie proxy? Co dzieje się z rzeczywistą klasą? I jak widzę stworzony proxy klasy sprężyny
- czytałem też w Dokumentach Wiosna, że:
Uwaga: Ponieważ mechanizm ten opiera się na proxy, tylko metoda „zewnętrzny” wzywa wpadającym przez proxy zostanie przechwycone. Oznacza to, że "samo-wywołanie", tj. Metoda w obiekcie docelowym wywołująca inną metodę obiektu docelowego, nie doprowadzi do rzeczywistej transakcji w czasie wykonywania, nawet jeśli wywołana metoda jest oznaczona jako
@Transactional
!
Źródło: http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html
Dlaczego tylko zewnętrzne wywołania metod będzie pod transakcji i nie metody self-inwokacja?
Odpowiednia dyskusja znajduje się tutaj: http://stackoverflow.com/questions/3120143/where-to---- -ransakcja-na-na-interfejs-definicja-lub-an/3120323#3120323 –