2016-10-14 2 views
0

In meiner Spring Boot-Anwendung funktioniert @Transactional Annotation ohne explizite Angabe von @EnableTransactionManagement.Spring Boot mit Feder @Transactional funktioniert ohne Aktivierung der Transaktionsverwaltung

Gibt es eine offizielle Dokumentation, die besagt, dass sie automatisch aktiviert wird?

Oder ist noch etwas los ....?

btw: Ich bin mit Spring Data JPA

+0

Haben Sie Spring-JDBC auf Ihrem Klassenpfad? Wenn dies der Fall ist, erstellt die automatische Spring-Boot-Konfiguration einen [DataSourceTransactionManager] (https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot /autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration.java) für Sie – anders

+0

Danke für den Kommentar @anders, können Sie auf einige offizielle Dokumentation verweisen? –

Antwort

3

Ja, dies ist aktiviert, solange Sie spring-tx und einige Transaktionsressourcen in Ihrer Anwendung haben. Effektiv, wenn Sie spring-boot-starter-jdbc oder spring-boot-starter-data-jpa verwenden, wird Spring Boot eine DataSource für Sie konfigurieren, Hibernate (in letzterem Fall) starten und Transaktionsverwaltung konfigurieren.

Nicht alle "Enable" -Anmerkungen müssen explizit festgelegt werden. Wenn es eine vernünftige Menge von Dingen gibt, die wir prüfen können, um es zu validieren, macht es Sinn, das für Sie zu konfigurieren, wir werden es tun. In diesem Fall, wenn Sie eine DataSource haben, müssen Sie wahrscheinlich Transaktionen haben wollen. Wenn Sie JPA (und keine JTA-Infrastruktur) haben, möchten Sie wahrscheinlich eine JpaTransactionManager). Wenn wir das automatisch konfigurieren, ist der einfachste Weg, es zu verwenden, über @Transactional, also werden wir das auch in diesem Fall aktivieren.

Ich vermute, du hast immer wieder nach einer Art "offizieller" Antwort gefragt, also hier ist eine.

0

@SpringBootApplication fügt @EnableAutoConfiguration es Spring Data JPA auf Ihrem Classpath erkennt. Entsprechend Spring-Register PlatformTransactionManager - JpaTransactionManager, Datenquelle, Entitymanager, Repositories.

Nicht sicher, es gibt genaue Artikel, aber es gibt richtige answer auf Stapel. Ein offizielles Federbeispiel article

+0

danke für die Antwort –

Verwandte Themen