Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Spring con EJB

Buen dia que tal?
Les hago la siguiente consulta,tengo alguna experiencia en Spring,pero no tengo nada de experiencia en EJB.
Por lo que tengo entendido,en un proyecto se opta para una tecnologia o la otra,ya que se encargan de lo mismo.

Pero he visto gente que intenta integrar Spring con EJB,me podrian dar un ejemplo o contarme para que seria necesario eso?
Muchas Gracias!!

febrero 14, 2013 | Unregistered CommenterAle Garcia

Hombre..., eso de 'encargarse de los mismo' no es exactamente verdad. Spring es un concepto muy amplio ya que esta formado por muchos (quizas demasiados) modulos diferentes. Aunque si que es verdad que todos estos modulos de Spring son dependientes de su core IoC.
Seria quizas por ejemplo posible utilizar el contenedor EJB para el modelo y para la parte controladora utilizar Spring MVC en lugar de otras soluciones como JSF, Struts, etc.
Sin embargo, como comentaba antes, incluso en este caso seria redundante ya que no es posible utilizar Spring MVC sin el Spring IoC container, por lo que estariamos levantando en el servidor dos contenedores diferentes, el de Spring el de EJBs.

En definitiva, en mi opinion eso de 'integrar Spring con EJB' no tiene mucho sentido. Donde dices que lo has visto? puedes postear algun link?

Un saludo

febrero 15, 2013 | Unregistered CommenterUnoPorAhi

Buenas. Yo no haría tal integración.

De hecho, si puedes usar EJB, úsalo (si el servidor web te lo permite y demás). Así no incluyes más dependencias en tu proyecto (usas las propias del contenedor de aplicaciones). No te recomiendo integrar ambas tecnologías. He visto proyectos donde se ha hecho y a la larga es un auténtico estorbo.

Si puedes usar EJB, úsalo (ya lo tienes, aprovéchalo). Si no puedes utilizarlo, Spring es una buena opción.

Como te comentan, Spring tiene muchos módulos, y abarca más que EJB (aunque está por ahí JSF y demás, que son otras especificaciones Java).

Yo soy más partidario de usar especificaciones, y que el contenedor web te aporte la implementación... por no tener que estar incluyendo jars, dependencias y demás, pero es cuestión de gustos supongo.

Un saludo.

febrero 15, 2013 | Unregistered Commentermayantigo

Para el segundo comentario :
http://static.springsource.org/spring/docs/2.5.4/reference/ejb.html

En la pagina de Spring te muestran como integrar con EJB.

febrero 15, 2013 | Unregistered CommenterAle Garcia

A que te referis con que preferis usars especificaciones?

febrero 15, 2013 | Unregistered CommenterAle Garcia

@Ale Garcia

Para el segundo comentario :
http://static.springsource.org/spring/docs/2.5.4/reference/ejb.html

En la pagina de Spring te muestran como integrar con EJB.

o_O Ese mismo documento al que haces referencia explica claramente con ejemplos como integrar ambos, cual es entonces la duda que te queda?

Que son cosas equivalentes y alternativas es algo que en el primer parrafo dejan claro la propia gente de Spring:
As a lightweight container, Spring is often considered an EJB replacement. We do believe that for many if not most applications and use cases, Spring as a container, combined with its rich supporting functionality in the area of transactions, ORM and JDBC access, is a better choice than implementing equivalent functionality via an EJB container and EJBs.

(O sea, usa Spring en lugar de EJB!. Que van a decir, claro...)

Puedes utilizar los contenedores de Spring y EJB juntos, del mismo modo que si tu aplicacion necesita 15 tablas puedes utilizar una base de datos distinta para almacenar cada una, o ta,bien puedes utilizar 20 tipos diferentes de librerias para generar PDF dentro tu proyecto. Nadie lo impide!, pero ni es una buena practica ni tiene mucho sentido de cara a mantenimiento, integracion, rendimiento... etc

P.D: mayantigo se refiere a la especificacion oficial Java EE
http://docs.oracle.com/javaee/6/tutorial/doc/
Spring IoC es una alternativa a la especificacion EJB


Un saludo

febrero 15, 2013 | Unregistered CommenterUnoPorAhi

o_O Ese mismo documento al que haces referencia explica claramente con ejemplos como integrar ambos, cual es entonces la duda que te queda?

No tengo experiencia con Spring, pero que se puedan integrar no significa que también sea una buena idea hacerlo.

Muy interesante la pregunta.

febrero 15, 2013 | Registered Commenterantoniovl

Es eso. Poder se puede... pero yo no lo haría. ¿Realmente necesitas cosas de ambos?. Y si puedes usar EJB, y te vale todo lo que te proporciona EJB, ¿para que vas a añadir más jars al proyecto haciendo que ocupe más?.

Pero vamos, es algo personal. No me justifico tecnológicamente ni mucho menos.

¡Un saludo!.

febrero 19, 2013 | Unregistered Commentermayantigo

Y si quisiera integra un contenedor EJB con Spring Security para manejar la seguridades de la app susando todas las ventajas que provee.

junio 17, 2016 | Unregistered CommenterAdrian Nieto

Para gustos no hay disgustos. Se puede integrar tanto desde una clase anotada con @Stateless haciendo uso de la anotación @Interceptors(SpringBeanAutowiringInterceptor.class) tal como ya lo había mencionado Ale Garcia en el 2013(Hace bastante tiempo, si...) ó desde una clase que posea anotaciones como @Component, @Service, @Repository,..(Que son visibles al contenedor de Spring) usando la anotación @EJB, solo que en este caso se necesita realizar la integración con un archivo xml utilizando algo como esto: <jee:local-slsb ..
ya que internamente la anotación @EJB dentro de la clase anotada por @Component, @Service, @Repository,..no es interpretada directamente por el contenedor de apliaciones (Sería visible solo si la clase también estuviera anotada con la anotación @Stateless). En mi opinión, me parece engorroso tener que hacer ese tipo de integraciones y pues prefiero decantarme por usar directamente jndi dinámicos para no preocuparme por las definiciones no estándar que tienen las implementaciones de los servidores de aplicaciones tales como: Weblogic, JBoss, Glassfish, etc. Solo hacen eso para amarrar al cliente y garantizar ganancias a través de asesoría técnica y para que la empresa donde trabajas siga comprando sus licencias.

abril 26, 2017 | Unregistered CommenterProgramador