Primavera vs EJB. ¿Puede la primavera sustituir EJB? [cerrado]


Dado que Spring es capaz de usar transacciones al igual que EJB. Para mí, Spring es capaz de reemplazar el requisito de usar EJB. ¿Puede alguien decirme cuáles son las ventajas adicionales de usar EJB?

Author: sal, 2009-11-22

4 answers

Spring se desarrolló como una alternativa a EJB desde su inicio, por lo que la respuesta es, por supuesto, que puede usar Spring en lugar de EJBs.

Si hay una "ventaja" al usar EJBs, diría que dependería de las habilidades de su equipo. Si usted no tiene experiencia en Primavera, y mucha experiencia en EJB, entonces tal vez quedarse con EJB 3.0 es un buen movimiento.

Los servidores de aplicaciones escritos para soportar el estándar EJB pueden, en teoría, ser portados de un servidor de aplicaciones Java EE compatible a otro. Pero eso significa mantenerse alejado de todas y cada una de las extensiones específicas del proveedor que lo encierran en un proveedor.

Puertos de resorte fácilmente entre los servidores de aplicaciones (por ejemplo, WebLogic, Tomcat, JBOSS, etc.) porque no depende de ellos.

Sin embargo, estás encerrado en la Primavera.

Spring fomenta buenas prácticas de diseño de OO (por ejemplo, interfaces, capas, separación de preocupaciones) que benefician cualquier problema que toquen, incluso si decide cambiar a Guice u otro marco DI.

Actualización: Esta pregunta y respuesta tienen cinco años en 2014. Hay que decir que el mundo de la programación y el desarrollo de aplicaciones han cambiado mucho en ese tiempo.

Ya no es solo una elección entre Java o C#, Spring o EJBs. Con vert.x es posible evitar Java EE por completo. Puede escribir de forma altamente escalable, aplicaciones políglotas sin un servidor de aplicaciones.

Actualización: Ahora es marzo de 2016. La bota de primavera ofrece una manera aún mejor de escribir aplicaciones sin servidores de aplicaciones Java EE. Puede crear un JAR ejecutable y ejecutarlo en una JVM.

Me pregunto si Oracle continuará soportando la especificación Java EE. Los servicios web se han hecho cargo de EJBs. La solución EJB está muerta. (Solo mi opinión.)

 191
Author: duffymo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-21 13:37:34

En primer lugar, permítanme decirlo claramente, no estoy diciendo que no se debe utilizar la primavera, pero, porque usted está pidiendo algunas ventajas, aquí están al menos dos de ellos:

  • EJB 3 es un estándar mientras que Spring no lo es (es un estándar de facto pero eso no es lo mismo) y esto no cambiará en el futuro previsible. Aunque puede usar Spring framework con cualquier servidor de aplicaciones, las aplicaciones de Spring están bloqueadas tanto en Spring como en los servicios específicos que elija integrar en primavera.

  • El framework Spring se encuentra en la parte superior de los servidores de aplicaciones y bibliotecas de servicios. El código de integración de servicios (por ejemplo, plantillas de acceso a datos) reside en el marco y está expuesto a los desarrolladores de aplicaciones. Por el contrario, el marco EJB 3 está integrado en el servidor de aplicaciones y el código de integración de servicios está encapsulado detrás de una interfaz. Los proveedores de EJB 3 pueden optimizar el rendimiento y la experiencia del desarrollador trabajando en la aplicación nivel de servidor. Por ejemplo, pueden vincular el motor de JPA estrechamente con la gestión de transacciones de JTA. Otro ejemplo es el soporte de clústeres que es transparente para los desarrolladores de EJB 3.

EJB 3 no es perfecto, sin embargo, todavía le faltan algunas características (por ejemplo, inyección de componentes no administrados como POJOs simples).

 47
Author: Pascal Thivent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-22 19:37:44

Los puntos de Pascal son válidos. Hay, sin embargo, los siguientes a favor de la primavera.

  • La especificación EJB es en realidad un poco floja, y por lo tanto se pueden observar diferentes comportamientos con diferentes servidores de aplicaciones. Esto no será cierto para la mayoría de los casos, por supuesto, pero he tenido un problema para algunos "rincones oscuros".

  • Spring tiene un montón de extras, como spring-test, AOP, MVC, integración JSF, etc. EJB tiene algunos de esos (interceptores, para ejemplo), pero en mi opinión no están muy desarrollados.

En conclusión, depende principalmente de su caso exacto.

 20
Author: Bozho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-22 19:44:48

Spring está destinado a complementar EJB, no a reemplazarlo. La primavera es una capa en la parte superior de EJB. Como sabemos, la codificación de EJB se realiza utilizando API, lo que significa que tenemos que implementar todo en API utilizando el framework Spring. Podemos crear código de placa de caldera, luego tomar esa placa, añadir algunas cosas a ella, entonces todo está hecho. Internamente Spring está conectado con EJB { Spring no existiría sin EJB.

La principal ventaja de usar resorte es que no hay acoplamiento en absoluto entre clases.

 -25
Author: sasi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-27 10:20:20