with example con spring jboss glassfish ejb cdi

example - Spring o CDI o EJB3



login primefaces hibernate (1)

Soy bastante nuevo en el concepto de inyección de dependencia y actualmente estamos escribiendo una aplicación web usando JSF y quizás Primefaces. Actualmente estamos evaluando si usar Spring o EJB3. Estaba realmente cerca de elegir Spring, pero luego escuché sobre CDI. ¿Puede darnos algunas pistas, que podrían ser las mejores para la siguiente situación?

Actualmente somos bastante nuevos en el mundo de J2EE y no sabemos si usaremos Glassfish o JBoss (o simplemente nos apegaremos a Tomcat).

La aplicación web es básicamente un prototipo para una aplicación empresarial CRUD que necesita ser capaz de manejar una lógica empresarial compleja. Queremos centrarnos en la "adaptabilidad", ya que algunos requisitos no están claros y se decidirán un año más tarde (cuando sabemos si aún podemos usar el prototipo).

No podemos usar Hibernate, ya que tendremos que escribir sentencias SQL bastante complejas. Actualmente hicimos buenas experiencias con la abstracción de SQL en Spring.

Tal vez estoy comparando manzanas y naranjas, pero hay demasiada información, si eres nuevo en j2ee. Creo que los EJB son el estándar definido a través de JCP, Spring es el estándar definido por el mercado y CDI es un estándar que también está definido por el JCP para hacer lo que Spring puede hacer. Pero ciertamente estoy equivocado ;-).

Gracias,

iuiz


Lincoln Baxter hace un excelente trabajo explicando las diferencias técnicas en este artículo: http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/ Larga historia corto: tanto Spring como CDI serán capaces de proporcionar inyección de dependencia. Uno es un estándar Java EE, el otro es una tecnología comúnmente conocida. Glassfish y JBoss ejecutan aplicaciones de Spring y CDI sin problemas. En cuanto a no poder usar Hibernate, no es el caso que no puedas usar SQL nativo dentro de Hibernate. Si puede, guarde a su equipo una gran cantidad de código CRUD extra muerto.