Frage

ich gelesen habe / Lernen in letzter Zeit mehr über Spring, und wie würde man Frühling verwendet in Kombination mit anderen Open-Source-Tool wie Tomcat und Hibernate. Ich bin der Bewertung, ob oder nicht Spring MVC eine mögliche Ersatztechnologie für das Projekt sein könnte ich arbeite, die WebLogic und eine Menge von benutzerdefinierten gewalzte Java EE-Code verwendet. Die Sache ist, habe ich immer den Verdacht, dass unsere Lösung over-engineered und WAY komplexer ist, als es sein muss. Erstaunlicherweise ist es 2009, und doch sind wir unsere eigenen transaktions Handhabung und Thread-Pooling-Klassen schreiben. Und es ist nicht wie wir sind Amazon, eBay oder Google, wenn Sie wissen, was ich meine. So bin ich die Untersuchung eine „einfacher ist besser“ Option.

hier ist also meine Frage: Ich mag Meinungen hören, wie Sie die Entscheidung treffen, dass ein ausgewachsener Java EE-Anwendungsserver erforderlich ist, oder nicht. Wie wollen Sie „Messen“ die Größe / load / Nachfrage auf einem App Java EE? Anzahl gleichzeitiger Benutzer? Insgesamt tägliche Transaktionen? Wie „schwer“ braucht eine App zu erhalten, bevor Sie Ihre Hände in der Hingabe werfen und sagen: „OK, Tomcat ist gerade schneidet es nicht, wir müssen JBoss / WebLogic / WebSphere“?

War es hilfreich?

Lösung

Ich glaube nicht, dass die Entscheidung über einen vollwertige Java EE-Server zu verwenden oder nicht von der Anzahl der Benutzer oder Transaktionen basieren sollte. Vielmehr sollte es auf der Grundlage, ob Sie die Funktionalität benötigen.

In meinem aktuellen Projekt wir ziehen tatsächlich von JBoss entfernt Tomcat Vanille, weil wir merkten wir nicht ohnehin eine der Java EE-Funktionalität über grundlegenden Servlets verwendet hatten. Wir sind jedoch mit Spring. Zwischen Spring Basisobjektmanagement, Transaktionsabwicklung und JDBC-Funktionen, werden wir keine zwingende Notwendigkeit für EJB zu sehen. Wir verwenden derzeit Struts 2 statt Spring MVC, aber ich habe große Dinge über das hörte. Jedenfalls integriert Frühling gut mit einer Reihe von Java-Web-Frameworks.

Andere Tipps

Frühling nicht versucht, bestimmte erweiterte Teile der JavaEE spec, wie JMS und JTA zu ersetzen. Stattdessen ist es auf dieser Builds, so dass sie mit dem „Spring Weg“ konsequent und in der Regel so dass sie leichter verwenden.

Wenn Ihre Anwendung die Leistung der Gleichen von JMS und JTA erfordert, dann kann man sie leicht über Frühling verwenden. Kein Problem.

Google öffentlich zugängliche Quellen viel ihren Codes. Wenn Sie Low-Level schreiben Dinge selbst, anstatt Code zu implementieren, die bereits geschrieben sind, sind Sie oft das Problem Grübeln.

Zurück zur eigentlichen Frage, Walmart.com, etrade.com, The Weather Channel und ganz wenige andere nur Tomcat verwenden. Marketing und Vertrieb Jungs von IBM würden Sie anders glauben vielleicht, aber es gibt keine Obergrenze für Tomcat.

Mit Ausnahme von EJB, ich bin nicht sicher, was Tomcat fehlt, und ich bin kein Fan von EJB.

Was Kater nicht auseinander bieten von den exotischen Elemente von Java EE ist Session Beans (aka EJBs). Session Beans können Sie Ihre Verarbeitung effizient isolieren. So können Sie eine Box für das vordere Ende haben könnte, ein anderes für die Session Beans (Business-Logik) und ein anderes für die Datenbank.

Sie wollen mindestens 2 Gründe, dies zu tun:

  1. Performance; Sie finden, dass eine Box um alles im Griff zu der Box viel geladen ist. Die Trennung der verschiedenen Schichten auf verschiedenen Feldern erlauben würde, um Ihnen zu skalieren. Session Beans ist auch in der Lage Balance auf einem feinkörnigen Ebene zu laden. Tomcat und andere Web-Dienste dieses ilk nicht über Clustering aus der Box.
  2. Flexibilität; Nun, da Sie Ihre Geschäftslogik in die eigenen Umgebung bewegt haben könnten Sie ein alternatives Frontend zu entwickeln, die die gleiche Schicht verwendet, aber sagen, war eine dicke Client-Front zum Beispiel beenden. Oder vielleicht andere Kontexte möchten Verwendung der Session Beans machen.

Obwohl ich wahrscheinlich darauf hinweisen, dass, wenn Sie Web-Service verwenden, um mit dieser mittleren Ebene zu kommunizieren, sondern auch auf Kater sein könnte!

Der einzige Grund, einen ausgewachsenen Java EE-Server zu verwenden ist, wenn Sie XA-Transaktionen verteilt benötigen, wenn Sie XA-Transaktionen nicht benötigen, dann können Sie Spring + JPA + Tomcat + Bean Validation + JSTL + EL + JSP + Java verwenden Mail.

Auch ist ein Java EE-Server soll JMS implementieren, aber es macht keinen Sinn, den JMS-Server in derselben VM wie der Rest des App-Server zu laufen, so dass, wenn Sie JMS benötigen, sollten Sie einen separaten JMS-Server.

ich mit allen Antworten stark andere Meinung, die hier gegeben.

Alles kann auf Tomcat, einschließlich EJB, CDI, JTA, Bean Validation, JAX-RS, etc. hinzugefügt werden.

Die Frage ist: Wollen Sie das? Haben Sie alle diese Abhängigkeiten in den richtigen Versionen montieren und testen möchten, dass es funktioniert alles zusammen, wenn andere haben dies bereits getan?

Lassen Sie uns klar sein: niemand nutzt nur Tomcat! Jeder fügt immer einen Web-Framework, ein IoC-Container, ein ORM, einen Transaktions-Manager, Web-Service, etc etc

Leichte Java EE-Server wie TomEE sind bereits all das und machen die vollständige Stapel Erfahrung die alle haben Dinge integriert, so viel besser.

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