2016-11-21 7 views
17

Ist @EnableTransactionManagement im Spring Boot erforderlich? Ich habe etwas recherchiert. Einige Leute sagen, dass Sie es nicht brauchen, da Spring Boot es bereits aktiviert hat, andere sagen, dass Sie es explizit verwenden müssen. Also wie ist es?@EnableTransactionManagement im Spring Boot

Antwort

19

Wahrscheinlich verwenden Sie auch Spring Data. Aufrufe von Spring Datenrepositorys sind standardmäßig von einer Transaktion umgeben, auch ohne @EnableTransactionManagement. Wenn Spring Data eine vorhandene Transaktion findet, wird die vorhandene Transaktion erneut verwendet, andernfalls wird eine neue Transaktion erstellt.

@Transaktionale Annotationen innerhalb Ihres eigenen Codes werden jedoch nur ausgewertet, wenn Sie @EnableTransactionManagement aktiviert haben (oder die Transaktionsverarbeitung auf andere Weise konfiguriert haben).

können Sie leicht Transaktionsverhalten verfolgen, indem Sie die folgende Eigenschaft auf Ihre application.properties Zugabe:

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

(siehe Showing a Spring transaction in log)

13

Nach>https://spring.io/guides/gs/managing-transactions/

Frühlings-Boot wird erkennen Spring-jdbc auf dem Klassenpfad und h2 und wird eine DataSource und eine JdbcTemplate für Sie automatisch erstellen. Da eine solche Infrastruktur jetzt verfügbar ist und Sie keine dedizierte Konfiguration haben, wird auch ein DataSourceTransactionManager für Sie erstellt: Dies ist die Komponente, die die @Transactional Annotated-Methode abfängt.

Sie können auch Feder-boot-Starter-Aktuator verwenden Ihre Bohnen in Ihrem Kontext erstellt zur Liste und Sie werden es

Bohne finden ":‚transaction‘

Verwandte Themen