La sustitución de com.google.inyectar con javax.inyectar
-
27-10-2019 - |
Pregunta
Es cierto que javax.inyectar las anotaciones pueden funcionar como reemplazos directas de com.google.inyectar?
Así que, si he sustituido todos los de mi actual guice/gin anotaciones con las de javax.inyectar, mi aplicación se compile y ejecute bien?
En primer lugar, ¿ javax.inyectar cubrir todas las bases que google.inyectar la cubierta?
Solución
Si, funcionará bien. De hecho, el autor de Guice (Bob Lee) es un lidera de especificaciones para el javax.inject
especificación.
javax.inject.Inject
no tiene el optional
Atributo, por lo que si desea una dependencia opcional, tendría que usar la anotación Guice.
Otros consejos
En realidad, he optado por abstenerse de cambiar a Javax.inject, porque la especificación muy minimalista en comparación con lo que Guice proporciona (que uso):
@Optional
Como lo menciona @Bozho@ImplementedBy
Lo cual es muy útil cuando desea reducir la cantidad de enlaces explícitos (para la claridad del código) y cuando desea poder anular fácilmente el valor predeterminado@ImplementedBy
Enlace si lo necesita (por ejemplo, para pruebas de integración).
Probablemente hay otros, pero para mí estos 2 ya son showstoppers.
La pregunta es bastante viejo, pero...FYI:usted puede automáticamente comprueba que en apiwave.
Aprendiendo con los últimos cambios que ver que com.google.inject.Inject
puede ser sustituido por javax.inject.Inject
.