Avatar ·

@Inject y @Autowired en Spring: ¿cuál es la diferencia y qué elegir?

¡Hola! Empecé a estudiar Spring Framework y estoy escribiendo mi primera aplicación. Me confundí con las anotaciones para inyección de dependencias. Veo que en algunos ejemplos usan @Autowired, y en otros, @Inject. Ambas anotaciones parecen hacer lo mismo: inyectar beans en campos, constructores o setters. Aquí hay un ejemplo de mi código donde uso @Autowired: ```java @Component public class UserService { @Autowired private UserRepository userRepository; public User findUser(Long id) { return userRepository.findById(id); } } ``` Pero mi colega dijo que es mejor usar @Inject del paquete javax.inject. Él afirma que es un enfoque más "limpio", pero no pudo explicar claramente por qué. Busqué en Google y encontré mucha información contradictoria. Algunos escriben que no hay diferencia en absoluto, otros dicen que @Inject es el estándar de Java, mientras que @Autowired es específico de Spring. Me interesan los siguientes puntos: 1. ¿Cuál es la diferencia fundamental entre estas anotaciones?