Spring 의존성 주입 어노테이션 정리:
@Autowired | Spring Framework | 타입(Type) | Spring에서 가장 널리 사용되는 의존성 주입 어노테이션. 타입을 기준으로 일치하는 빈을 찾아서 주입. 동일한 타입의 빈이 여러 개 있으면, NoUniqueBeanDefinitionException이 발생. 이 경우 @Qualifier와 함께 사용하여 주입할 빈을 명시하거나, @Primary를 사용하여 우선순위를 지정할 수 있다. |
@Qualifier | Spring Framework | 이름(Name) | @Autowired와 함께 사용되어, 동일 타입의 빈이 여러 개 있을 때 어떤 빈을 주입할지 이름으로 지정. @Autowired가 붙은 필드, 생성자 파라미터, Setter 메서드 파라미터에 함께 사용. @Bean 메서드에도 사용하여 빈 이름을 명시적으로 지정할 수 있다. |
@Value | Spring Framework | 값(Value) | 프로퍼티 파일(*.properties, *.yml), 환경 변수, 시스템 프로퍼티, SpEL 표현식 등의 값을 필드, 생성자 파라미터, Setter 메서드 파라미터에 주입. SpEL(Spring Expression Language)을 사용하여 표현식을 평가한 결과를 주입할 수 있다. |
@Resource | JSR-250 (Java 표준) | 이름(Name), 타입(Type) | 이름을 기준으로 빈을 찾아서 주입. @Qualifier와 유사한 역할. 이름이 지정되지 않으면 타입을 기준으로 찾는다. ( @Autowired와 유사) Spring 뿐만 아니라 Java EE 환경에서도 사용할 수 있다. |
@Inject | JSR-330 (Java 표준) | 타입(Type) | @Autowired와 거의 동일하게 동작. (타입 기반 주입) @Qualifier와 함께 사용하여 주입할 빈을 지정할 수 있다. Spring 외에 다른 DI 프레임워크에서도 사용할 수 있다. |
'개발 > Spring' 카테고리의 다른 글
[Spring] 스프링에서 리소스에 접근하는 방법 (0) | 2025.03.14 |
---|---|
[Spring] 스프링 빈 주입 방법 (0) | 2025.03.13 |
[Spring] 스프링 빈의 라이프 사이클 (0) | 2025.01.23 |
[Spring] 스프링 컨테이너의 종류와 주요 메소드 (0) | 2025.01.23 |
[Spring]스프링 빈을 컨테이너에 등록하는 방법 (0) | 2025.01.22 |