He examinado la implementación de JBoss 'Weld Reference de JSR-299 Contexts y Dependency Injection, y quería saber cómo se comparan las implementaciones de otros CDI entre sí. Específicamente, sé sobre Weld, Resin CanDI (por Caucho) y Apache OpenWebBeans.Diferencias entre las implementaciones de Java EE 6 CDI
Respuesta
Actualmente no se pueden comparar. Dudo que alguno de ellos haya sido usado en producción, están demasiado frescos.
- Weld se supone que es la implementación de referencia, ya que se está desarrollando en estrecha colaboración con la ventaja de especificaciones - Gavin King (de JBoss)
- personalmente, me gusta OpenWebBeans más en virtud de tener una un código más limpio, pero eso no es importante cuando se usa.
Breve resumen de los protagonistas:
- Weld es la RI (sólo hay un RI), versión 1.0 está fuera, que está integrado en GlassFish v3 y la próxima JBoss AS EE 6 pero también se puede usar con other containers (con algunas limitaciones).
- OpenWebBeans es todavía en desarrollo, es la versión 1.0.0 planeado para finales de abril de 2010.
- Caucho Candi parece estar ligada a resina (puedo estar equivocado aquí, pero no pudo encontrar ninguna prueba clara de lo contrario en su sitio web, que de todos modos es malo).
Así que, si tuviera que elegir una aplicación en el momento de escribir esto, yo escogería la RI (es decir Weld) porque es listo y se puede utilizar "independiente" (listo no quiere decir que ha sido ampliamente utilizado).
Si está buscando una comparación de rendimiento (¿qué otra cosa le gustaría comparar?), No creo que encuentre un punto de referencia por el momento.
En cualquier caso, si desea utilizar CDI, simplemente hágalo.
Hubiera dicho lo contrario;) Pero ambos proyectos son herramientas excelentes y vienen provistos con diferentes servidores de aplicaciones. La clave es que ambos siguen la especificación Java EE y proporcionan una potencia increíble para programar la flexibilidad y la reutilización.
Actualmente uso OpenWebBeans en un proyecto gubernamental realmente productivo, junto con un entorno de perfil web completo EE6. Pero no te diré dónde, así que no se puede desvanecer;) (Por cierto, prepárate para que la mayoría de las partes de EE-6, como por ejemplo, la integración de EL-2.2, actualmente necesite muchos pequeños parches y ajustes para empezar a funcionar). ¡pero realmente parece prometedor!)
De hecho, las comunidades Weld y OpenWebBeans se comunican entre sí con bastante frecuencia, por lo que cada vez que tocamos algo que no está claramente alineado en la especificación, ambos tratamos de discutir las cosas. Y puesto que los individuos involucrados Caucho Ferg y Reza son ambos simplemente dichos dioses java, apuesto a que su aplicación es muy bueno también;)
En cuanto a OpenWebBeans: Actualmente estamos preparando un comunicado Milestone4 que debe ser liberado la próxima semana. ¡openwebbeans-impl aka 'owb-core' casi no tiene dependencias! Todas las dependencias 'más pesadas' se manejan mediante complementos que se recogen automáticamente de la ruta de clase, si está disponible.Cubren ciertas partes de la especificación cuando se trata de interactuar con otras partes EE. Hay, por ejemplo, plugins como openwebbeans-jsf, openwebbeans-jms, openwebbeans-resource (manejo de recursos EE + JPA), etc.
Btw: ¡no te pierdas la forma maravillosa y sencilla de escribir tu propio portátil! Extensiones CDI.
para obtener una primera idea, lo podría hacer en Seam3: anonsvn.jboss.org/repos/seam/modules/ y por supuesto Apache MyFaces CODI: github.com/struberg/myfaces-ext-cdi (conseguirá mover a Apache MyFaces SVN pronto)
LieGrue, Strub
¿Cuál es su pensamiento ahora en OWB vs WELD ahora que ambos son un poco maduros. Escuché que OWB es más rápido? ¿Que pienso? –
una actualización menor. Apache MyFaces CODI alcanzó 1.0.0 mientras tanto. Se puede encontrar más información en el sitio oficial: http://myfaces.apache.org/extensions/cdi/index.html – struberg
mientras que se refiere a la especificación CDI, espero que no habrá ninguna diferencia funcional entre los RI. Revise este artículo: Understanding Java EE 6 and CDI
- 1. Diferencia entre Java EE 5 y Java EE 6
- 2. ¿Los eventos CDI de Java EE 6 son transaccionales?
- 3. Diferencias entre las implementaciones de JVM
- 4. ¿Cuáles son las diferencias fundamentales entre OSGi y Java EE?
- 5. Maven - Java EE 6 Web Javadocs perfil
- 6. Java EE 6 y alternativas
- 7. Diferencias entre las implementaciones de socket winsock y BSD
- 8. Java EE 6 Patrones de diseño
- 9. ¿Java EE 6 es todo gratis?
- 10. Pruebas basadas en Java EE 6 API
- 11. Cómo proteger un servicio web REST en Java EE 6
- 12. Diferencias entre std :: endl y '\ n' para implementaciones de streambuffer
- 13. El misterio de la herencia de Java EE 6 anotaciones
- 14. Java EE 6: @Inject y <T> Instancia
- 15. Diferencia entre Java SE y Java EE
- 16. ¿Cuáles son las diferencias entre java 1.5 y java 1.6
- 17. Envío de correos electrónicos en JAVA EE 6
- 18. Generar URL de activación en Java EE 6
- 19. Inyección de Java EE 6 en la clase abstracta
- 20. Java EE 6 - El patrón Persistent Domain Objects - ¿algún éxito?
- 21. Deshabilitar Temporizador EJB (GlassFish 3.1, Java EE 6)
- 22. Instalar Java EE 6 en OS X Lion
- 23. ¿Qué es un módulo EJB en Java EE 6?
- 24. ¿Debo ir a Spring o seguir con Java EE 6?
- 25. Integrando Javadoc para Java EE 6 API en Eclipse
- 26. ¿Cuáles son las diferencias entre JSP y Facelets?
- 27. Las diferencias entre C# asíncrono y Java ExecutorService
- 28. ¿Cuáles son las diferencias entre PHP y Java?
- 29. ¿Cuáles son las diferencias entre LLVM y bytecode java?
- 30. Cuáles son las diferencias en JIT entre Java y .Net
¿Cuál es su pensamiento ahora en OWB vs WELD ahora que ambos son un poco maduros. Escuché que OWB es más rápido? ¿Que pienso? –
Sí OWB es más rápido. Hay algunos puntos de referencia por ahí. También es más extensible –