안녕하세요! 스프링의 의존 관계 주입에 대해서 공부하다가 의문점이 생겨서 질문을 남깁니다.
스프링에서 의존 관계를 주입하는 어노테이션은 @Resources, @Inject, @Autowired 세 가지가 있는 것으로 보이는데,
이 중 @Inject와 @Autowired에 대해 궁금증이 생겼습니다.
대부분 강의나 작성된 코드를 보면 @Autowired를 많이 사용하시는 것으로 보입니다.
제가 파악한 둘의 차이점은 아래와 같습니다.
* @Autowired는 스프링 프레임워크에서 제공하지만, @Inject는 JSR-330 표준 어노테이션이다.
* @Autowired는 required = false로 설정할 수 있다.
* @Autowired가 먼저 생겼고, 이후에 @Inject가 생겼다. 따라서 오래된 버전의 스프링에서는 @Autowired를 사용한다.
이렇다 보니, (거의 그럴 일이 없지만) Spring에서 다른 DI 컨테이너로 변경하는 경우 @Inject는 그대로 사용할 수 있지만, @Autowired는 사용할 수 없는 것으로 보입니다.
그럼에도 강의 내에서, 그리고 많은 스프링 코드들이 @Autowired를 사용하는 이유를 알 수 있을까요?
감사합니다!