Warum sollten wir keinen Spring MVC Controller @Transactional machen?

Gibt es schon ein paar Fragen zu dem Thema, aber keine Antwort bietet sich wirklich an Argumenten, um zu erklären, warum wir es nicht machen sollte eine Spring MVC-controller Transactional. Siehe:

So, warum?

  • Ist es unüberwindbar technische Probleme?
  • Gibt es architektonische Fragen?
  • Ist es die Leistung/deadlock/concurrency-Probleme?
  • Sind manchmal mehrere separate Transaktionen erforderlich? Wenn ja, was sind die use cases? (Ich mag die Vereinfachung der Konstruktion, dass die Aufrufe von server entweder vollständig gelingen oder vollständig scheitern. Es klingt ein sehr stabiles Verhalten)

Hintergrund:
Ich arbeitete vor ein paar Jahren in einem Team auf einem sehr großen ERP-Software implementiert in C#/NHibernate/Spring.Net. Der roundtrip zum server wurde genau umgesetzt wie, dass: die Transaktion eröffnet wurde, vor dem Eintritt in einen der controller-Logik und begangen wurde oder rollbacked wird nach Beendigung der controller. Die Transaktion konnte in dem Rahmen, so dass niemand hatte sich darum zu kümmern. Es war eine geniale Lösung: stabil, einfach, nur ein paar Architekten hatten, um die Pflege über Transaktion Probleme, der rest des Teams nur features implementiert.

Aus meiner Sicht, es ist das beste design, die ich jemals gesehen habe. Als ich versuchte zu reproduzieren die gleichen design-mit Spring MVC, trat ich in einen Albtraum mit lazy-loading und Transaktion Fragen und jedes mal die gleiche Antwort: machen Sie nicht den Transaktions-controller, aber warum?

Vielen Dank im Voraus für Ihre gegründet Antworten!

InformationsquelleAutor der Frage jeromerg | 2014-04-16

Schreibe einen Kommentar