@Inject et @Autowired dans Spring : quelle est la différence et que choisir ?
Bonjour ! J'ai commencé à étudier le framework Spring et j'écris ma première application. Je suis confus au sujet des annotations pour l'injection de dépendances. Je vois que dans certains exemples, on utilise @Autowired, et dans d'autres, @Inject. Les deux annotations semblent faire la même chose : injecter des beans dans les champs, les constructeurs ou les setters.
Voici un exemple de mon code où j'utilise @Autowired :
```java
@Component
public class UserService {
@Autowired
private UserRepository userRepository;
public User findUser(Long id) {
return userRepository.findById(id);
}
}
```
Mais mon collègue m'a dit qu'il vaut mieux utiliser @Inject du package javax.inject. Il affirme que c'est une approche plus "propre", mais n'a pas pu expliquer clairement pourquoi. J'ai cherché sur Google et trouvé beaucoup d'informations contradictoires. Certains disent qu'il n'y a aucune différence, d'autres disent que @Inject est un standard Java, tandis que @Autowired est spécifique à Spring.
Les points suivants m'intéressent :
1. Quelle est la différence fondamentale entre ces annotations ?