Die Konfiguration von Transaktionen im Springboot-Projekt wurde bereits im letzten internen Projekt verwendet, da es im Code anderer Leute verwendet wurde (damals gab es ein Framework). Garantie, das war mir egal) Wird im neuen Startprojekt erneut verwendet. Nach der Überprüfung reicht es aus, zwei Tags unter dem Springboot-Projekt zu konfigurieren.
(1) Es gibt tatsächlich zwei Tags, eines wird in der Startup-Klasse verwendet (@EnableTransactionManagement) und das andere wird dort konfiguriert, wo es benötigt wird
(2) Plan , Ich habe gerade ein früheres Testprojekt gefunden: Speichern Sie ein Datenelement in der Datenbank und teilen Sie 1 durch 0 und sehen Sie dann, was der Unterschied mit oder ohne Transaktionsbezeichnung ist
(1) Controller-Klasse
@ResponseBody @GetMapping("/tstest") public String tstest() { this.userService.tstest(); return "SUCCESS"; }
(2) Service-Klasse
public void tstest() { //保存 UserEntity userEntity = new UserEntity(); userEntity.setType(0); userEntity.setOpenid("1111"); insert(userEntity); //报错,回滚 int i = 1/0; System.out.println(i); }
Keine Transaktionsbezeichnung, der Code ist wie oben.
(1) Löschen Sie zuerst die Datenbank.
(2) Führen Sie die Testanforderung aus.
Es wird festgestellt, dass die Daten nach der Ausführung der Einfügecodezeile in der Datenbank gespeichert werden.
Dann ist die Ausführung abgeschlossen (1/0). Obwohl der Fehlercode einen Fehler meldet, sind die Daten in der Datenbank noch vorhanden. Die Daten werden nicht zurückgesetzt und die Konsistenz bleibt nicht erhalten.
(1) Fügen Sie zwei Beschriftungen hinzu, eine für die Startup-Klassenmethode und die andere für die Testmethode. (2) Löschen Sie zuerst die Daten und führen Sie sie aus, um sie einzufügen Nach der Ausführung meldet der Code dann einen Fehler, die Daten werden zurückgesetzt und die Daten werden nicht in der Datenbank gespeichert, was darauf hinweist, dass die Transaktion ihre beabsichtigte Rolle gespielt hat und die Daten zurückgesetzt wurden.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!