Reemplazando com.google.inject con javax.inject
gwt dependency-injection (4)
En realidad, he decidido abstenerme de cambiar a javax.inject porque considero que la especificación es mucho más minimalista en comparación con lo que proporciona Guice (que yo uso):
-
@Optional
como lo menciona @Bozho -
@ImplementedBy
que es muy útil cuando se quiere reducir el número de enlaces explícitos (para la claridad del código) y cuando se quiere poder sobrescribir fácilmente el enlace predeterminado@ImplementedBy
si se necesita (p. Ej., Para pruebas de integración).
Probablemente haya otros, pero para mí estos 2 ya son sorprendentes.
¿Es cierto que las anotaciones javax.inject pueden funcionar como reemplazos directos para com.google.inject?
Entonces, si reemplazara todas mis anotaciones actuales de guice / gin con las de javax.inject, mi aplicación se compilaría y funcionaría bien.
Primero, ¿cubre javax.inject todas las bases que cubre google.inject?
La pregunta es bastante antigua, pero ... FYI: puedes verificarla automáticamente en apiwave .
Al aprender con cambios pasados, vemos que com.google.inject.Inject
puede reemplazarse por javax.inject.Inject
.
Si, funcionará bien. De hecho, el autor de guice (Bob Lee) es un espec-lead para la especificación javax.inject
.
javax.inject.Inject
no tiene el atributo optional
, por lo que si quieres una dependencia opcional, deberías usar la anotación guice.