Frühling gegen EJB (Vorteil und Nachteil) [duplizieren]

8

Ich bereite gerade meine letzte Projektstudie vor. Ich muss eine verteilte Anwendung für das Personalmanagement entwickeln, aber bei meiner Benchmark für die zu verwendenden Technologien fand ich es verwirrend, zwischen Frühjahr und dem EJB 3.1 zu entscheiden.

Ich weiß nicht, welches am besten geeignet und am einfachsten zu verwenden ist. Ich bin ein Anfänger für beide Technologien und deshalb hoffe ich, dass jemand mir helfen kann.

    
Informatique2015 16.03.2015, 14:58
quelle

1 Antwort

35

Sie wählen nicht zwischen EJB und Spring, Sie wählen tatsächlich zwischen Java EE und Spring, weil EJB nur ein Teil von Java EE ist, der auch andere Komponenten wie JMS, Servlets, JSP, JSF, CDI usw. enthält Tage (J2EE 1.4) Programmiermodell der Enterprise-Edition von Java hatte viele Mängel und Mängel, aber die wichtigsten waren, dass es langweilig und ausführlich mit einer Menge Code-Boiler-Platte und Tonnen von xml-Konfigurationen war. Spring wurde als alternativer Rahmen eingeführt, der das Konvention-über-Konfiguration-Prinzip begünstigt. Mit anderen Worten, im Frühjahr gab es einige vernünftige Standardeinstellungen, die bei Bedarf neu konfiguriert werden konnten. Java EE 5 führte bedeutende Änderungen ein, die das gleiche Convention-over-Configuration-Prinzip von Spring anwendeten und den Umfang und die Komplexität des Codes drastisch reduzierten, um die Dinge in Gang zu bringen. In diesem Bereich hält Spring also keinen sensiblen Vorteil mehr.

Es ist auch wichtig zu beachten, dass Java EE nur eine Spezifikation ist. Um eine Real-World-App zu erstellen, benötigen Sie eine Implementierung, von der es heute viele gibt - Glassfish, JBoss, Tomcate usw. bieten verschiedene Implementierungen der Java-EE-Spezifikation, was zusätzliche Komplexität mit sich bringt - ich muss jetzt entscheiden, welche Java EE-Implementierung wählen. Sie können das mit Spring, das von einer einzigen Quelle kommt, abgleichen.

Beide Frameworks bieten Ihnen ziemlich ähnliche Funktionen. Alle Support-Transaktionen, ORM, bieten Tools zum Erstellen von Business-Logik, Unterstützung CDI, AOP. In Spring und Java EE können Sie nur die Teile verwenden, die Sie benötigen, dh Sie müssen nicht das gesamte Framework verwenden. Sie können sie sogar zusammen verwenden - sie können zusammenarbeiten. Dank der Einführung von einbettbaren Containern können Sie jetzt sogar Java EE-Funktionen verwenden, die Sie in Bereichen wie Desktop-Anwendungen benötigen, die traditionell der Bereich von Spring waren.

Aber ein Bereich, in dem Java EE hinter Spring noch fehlt, ist eine komfortable Testbarkeit. Es ist nicht einfach, Komponententests für EJB zu schreiben. Dazu müssen Sie ein spezielles Framework von Drittanbietern (Arquillian) verwenden und einige Codebausteine ​​in Ihre Tests schreiben (z. B. um das Test-Deployment-Paket zu erstellen und auf den Container zu verteilen .). In der Tat, Java EE fehlt jegliche Unterstützung für das Testen von EJBs out of the box. Im Gegensatz dazu wurde Spring mit Testbarkeit und TDD entwickelt. Das Testen von Spring Beans ist einfach, da Spring gebündelte Unterstützung für alle Tests (Komponententests, Integrationstests) aller Teile der Anwendung sowie für das Mocking bietet.

    
akhilless 17.03.2015 07:57
quelle

Tags und Links