Frage

In meinem gerade abgeschlossenen Projekt arbeitete ich verteilte Transaktionen immer arbeiten.

Wir führten diese Arjuna Transaction Manager mit JBoss und Spring deklarative Transaktionsgrenzen.

Unsere Anforderungssequenz sah aus wie:

browser -> secured servlet -> 'wafer-thin' SLSB -> spring TX-aware proxy -> request-handler POJO

Was damit gemeint ist, dass wir einen Krieg hatten unsere gesicherten Servlets und eine EAR dienen unsere SLSB dienen.

Unsere SLSB hatte einen statischen initialiser Block unseren Spring-Anwendungskontext Bootstrap.

Ich mag es nicht die Mischung von Technologien, aber ich mag die Trennung von Präsentations- und Geschäftsebenen, die auf unterschiedlichen physischen Standorten befinden könnte.

würde ich daran interessiert zu wissen, was andere schlagen Ebene zu trennen, wenn mit Spring?

War es hilfreich?

Lösung

Erfordern eine EJB3 App-Server nur für eine SLSB, die eine Fassade scheint nicht, wie es die Mühe mir wert ist. Es gibt keinen Grund, warum Sie konnte nicht nur das entfernen und haben Ihr Servlet Arbeit direkt mit Frühling. Sie können die Context zur WAR fügen Sie Ihre Application zu laden und dann WebApplicationContextUtils, um es zu bekommen. Alternativ können Sie SpringMVC, Struts oder anderen Web-Technologien verwenden, wenn Sie mehr tun müssen, als das, was die Servlet auf seinem eigenen kann für.

Andere Tipps

Ein recht typischer Ansatz ist es, ein Web-Tier, eine Serviceschicht und eine DAO Ebene zu definieren und Transaktionssemantik an das Service-Tier zu befestigen. Das Service-Tier könnte ein Bündel von POJOs mit @Transactional Anmerkungen sein, zum Beispiel. Das Web-Tier könnte Spring Web MVC-Controller sein. Bei diesem Ansatz wird die Anpassung der Web-Tier im Wesentlichen die Dienststufe zu HTTP. Eine gute Trennung und keine Notwendigkeit für SLSBs hier.

Ein Bereich der Debatte ist allerdings in Bezug auf die Domain-Objekte, wie Mitarbeiter oder PurchaseOrder oder was auch immer. Diese Spanne Anwendungsebene und eine Sache, die mit Anmerkungen zu geschehen scheint, ist, dass die Domain-Objekte Anmerkungen erhalten, die auf bestimmte Ebene gebunden ist. Sie könnte also hier ORM Anmerkungen haben, aber dann mit dem gleichen Domain-Objekt als eine Form-Backing Bean als eine Möglichkeit, parallel Domain / Form-Objektklassen zu vermeiden. Manche Menschen wenden sich gegen das als Verletzung der architektonischen Trennung von Bedenken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top