@Autowired
La anotación se define en el marco de Spring.
@Inject
La anotación es una anotación estándar, que se define en la "Inyección de dependencia para Java" estándar (JSR-330) . Spring (desde la versión 3.0) admite el modelo generalizado de inyección de dependencia que se define en el estándar JSR-330. (Los marcos de Google Guice y el marco de Picocontainer también admiten este modelo).
Con @Inject
se puede inyectar la referencia a la implementación de la Provider
interfaz, lo que permite inyectar las referencias diferidas.
Anotaciones @Inject
y @Autowired
- es analogías casi completas. Además de la @Autowired
anotación, la @Inject
anotación se puede usar para propiedades de enlace automático, métodos y constructores.
A diferencia de la @Autowired
anotación, la @Inject
anotación no tiene required
atributo. Por lo tanto, si no se encuentran las dependencias, se generará una excepción.
También hay diferencias en las aclaraciones de las propiedades de unión. Si hay ambigüedad en la elección de los componentes para la inyección, @Named
se debe agregar el calificador. En una situación similar para la @Autowired
anotación se agregará el @Qualifier
calificador (JSR-330 define su propia @Qualifier
anotación y, a través de este calificador, @Named
se define la anotación ).