2016-11-21 40 views
17

Czy @EnableTransactionManagement jest wymagane w Spring Boot? Zrobiłem trochę badań. Niektórzy ludzie twierdzą, że nie jest ci potrzebny, ponieważ Spring Boot ma już włączony, inni mówią, że musisz go wyraźnie użyć. Więc jak to jest?@EnableTransactionManagement w Spring Boot

Odpowiedz

19

Prawdopodobnie używasz także danych sprężyn. Połączenia z repozytoriami danych Spring są domyślnie otoczone transakcją, nawet bez @EnableTransactionManagement. Jeśli Spring Data znajdzie istniejącą transakcję, istniejąca transakcja zostanie ponownie wykorzystana, w przeciwnym razie zostanie utworzona nowa transakcja.

@ Adnotacje transakcyjne w obrębie własnego kodu są jednak oceniane tylko wtedy, gdy aktywowano @EnableTransactionManagement (lub skonfigurowano obsługę transakcji w inny sposób).

można łatwo prześledzić zachowanie transakcji dodając następującą właściwość do swoich application.properties:

logging.level.org.springframework.transaction.interceptor=TRACE 

(patrz Showing a Spring transaction in log)

13

Według>https://spring.io/guides/gs/managing-transactions/

Wiosna Boot wykryć spring-jdbc na ścieżce klas i h2 i będzie utworzyć DataSource i JdbcTemplate dla ciebie automa tically. Ponieważ taka infrastruktura jest już dostępna i nie masz dedykowanej konfiguracji, zostanie utworzony DataSourceTransactionManager dla ciebie: jest to składnik, który przechwytuje metodę adnotacji @Transactional.

Można również użyć wiosna-Boot-starter-siłownik do listy swoich fasoli utworzone w kontekście i znajdziesz to

fasoli ": "transactionManager"