오늘 Chet Sense에게 물어봤습니다.
그의 대답
1. @Autowired는 Spring 전용 주석이고 @Inject는 Java 종속성 주입(JSR-330) 사양의 일부입니다.
2. @Autowired는 Spring 관리 Bean을 클래스에 주입하는 데 사용되는 반면 @Inject는 JSR-330 사양을 구현하는 모든 종속성 주입 프레임워크와 함께 사용할 수 있습니다.
3. @Autowired는 생성자 주입, 필드 주입 및 메서드 주입을 지원하는 반면 @Inject는 생성자와 필드 주입만 지원합니다.
4 @Autowired는 Spring 애플리케이션에서 더 일반적으로 사용되는 반면 @Inject는 Java EE 애플리케이션에서 더 일반적으로 사용됩니다.
Autowired는 Spring의 일부이고 Inject는 Java 종속성 주입(JSR-330)의 일부입니다.
가져올 때 라이브러리 팩 이름이 표시되지 않는 이유는 무엇입니까? 이제 알겠어…
하지만 문서를 보면
Chatsenses 3번과 달리 @inject는 메서드 주입도 지원합니다.
그래서 내가 당신이 틀렸다고 말했을 때…
네 말이 맞아. 이전 답변으로 인해 혼란을 드린 점 사과드립니다.
Spring 5 이상 버전에서는 @Inject 어노테이션을 메서드 주입, 생성자 및 필드 주입에 사용할 수 있습니다.
이는 Spring 5가 메서드 주입에 대한 @Inject 지원을 포함하는 JSR-330 사양을 지원하기 때문입니다.
이는 JSR-330이 Spring 5부터 지원되었기 때문입니다.
그는 이미 알고 있었다
참조 공식 문서