Heim >Java >javaLernprogramm >Lösung des Problems, dass Transaktionen nicht vom Spring-Container verwaltet werden können

Lösung des Problems, dass Transaktionen nicht vom Spring-Container verwaltet werden können

不言
不言nach vorne
2018-10-10 11:37:512005Durchsuche

In diesem Artikel geht es um die Lösung des Problems, dass Transaktionen nicht mit Federcontainern verwaltet werden können. Ich hoffe, dass er für Sie hilfreich ist.

Ich arbeite kürzlich an einem kleinen Projekt, dem SpringMVC-Mybatis-Framework. Jedes Mal, wenn im Konsolenprotokoll vorhanden ist, wird die JDBC-Verbindung [com.mysql.jdbc.JDBC4Connection@59dfe4bc] nicht von der Spring-Ausgabe verwaltet

Es zeigt, dass es ein Problem mit der Transaktionskonfiguration geben muss, also habe ich die Konfigurationsdatei durchgesehen und festgestellt, dass die annotationsbasierte Transaktion konfiguriert wurde und auch die Annotation @Transactional verwendet hat.

Also begann ich darüber nachzudenken, was schief gelaufen ist. Da ich zuvor einige Quellcodes von Spring und einige Quellcodes von SpringMVC gesehen hatte, kamen mir einige Ideen. Ich habe das Problem in der Spring-Konfigurationsdatei

und der SpringMVC-Konfigurationsdatei

Die gescannte Bean in der Spring-Konfigurationsdatei gefunden, spring fügt ihm einen Proxy mit Transaktionsfunktionen hinzu. Nachdem der SpringMVC-Container gestartet wurde, besteht eine Eltern-Kind-Beziehung zum Spring-Container. Getbean Der Prozess besteht darin, zuerst die

Bean aus dem Untercontainer abzurufen. Das Problem liegt hier. Die Beans im Springmvc-Container verfügen nicht über Transaktionsverarbeitungsfunktionen, daher habe ich einige Anpassungen an der Scanstrategie

in der Springmvc-Konfigurationsdatei vorgenommen. Fügen Sie

<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />

zur Anmerkung hinzu Scannen Sie das Projekt

spring und führen Sie es aus, um die Transaktion zu verwalten.

Das obige ist der detaillierte Inhalt vonLösung des Problems, dass Transaktionen nicht vom Spring-Container verwaltet werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen