Spring Boot/STUDY

[Spring Boot] @Resource이란?

코맹 2024. 6. 17. 11:51

 

 

Spring Framework에서 @Resource 어노테이션은 의존성 주입(Dependency Injection)을 위해 사용된다.

이 어노테이션은 JDK 1.6 이상에서 지원되며, 자바 표준 어노테이션(JSR-250)이다.

 

@Resource와 @Autowired를 비교해보면 의미를 이해하기 쉬울 것이다.

 

@Autowired
  • 타입(클래스)로 Bean을 지정한다
  • 생성자/필드/메서드에 모두 적용 가능
@Resource
  • Name으로 Bean을 지정한다.
  • 필드/메서드에만 적용 가능
@Autowired 어노테이션은 타입을 이용해서 의존성을 주입,
@Resource 어노테이션은 빈 이름을 이용해서 의존성을 주입한다.

 

@Resource 어노테이션의 적용 순서
  1. name 속성에 지정한 빈 객체를 찾는다.
  2. name 속성이 없을 경우, 동일한 타입을 갖는 빈 객체를 찾는다.
  3. name 속성이 없고 동일한 타입을 갖는 빈 객체가 두 개 이상일 경우, 같은 이름을 가진 빈 객체를 찾는다.
  4. name 속성이 없고 동일한 타입을 갖는 빈 객체가 두 개 이상이고, 같은 이름을 가진 빈 객체가 없는 경우 @Qualifier를 이용해서 주입할 빈 객체를 찾는다.