본문 바로가기

IT/Spring

@Resource 어노테이션이란? / @Resource @Autowired 차이점(@Resource vs @Autowired)-사좋배 공유

@Resource 어노테이션이란?

 

@Autowired와 같은 역할을 한다고 보면된다.

@Resource 어노테이션은 빈의 이름을 이용해서 주입할 객체를 검색한다. @Resource 어노테이션을 사용하려면 앞서 @Autowired 어노테이션과 마찬가지로 다음의 두가지만 추가하면된다.ㅇ

 

1.자동 주입 대상에 @Resource 어노테이션 사용

2.XML설정에 <context:annotation-config />설정 추가

 

@Resource 어노테이션은 빈의 이름을 사용해서 주입할 빈 객체를 찾기 때문에, @Resource 어노테이션의 값으로 빈 객체의 이름을 지정한다.

 

@Resource 어노테이션은 생성자에 적용할 수 없고 필드나 메서드에만 적용할 수 있다.

 

@Autowired와 @Resource의 차이점.


Autowired와 Resource 중에 무엇을 사용하는것이 좋을까? 적용 순서는 약간 다르지만, 둘다 타입, 이름 ,@Qualifire 애노테이션을 모두 사용한다. 
차이점이라면 @Autowired애노테이션은 required 애노테이션을 사용해서 필수 여부를 지정할 수 있다는 점과 타입과 이름 중 무엇을 먼저 사용하느냐에 대한 것이다.

필자는 자동 주입을 가능한 쓰지 않고 필요한 경우에만 적용하는 걸 선호하기 때문에, 두 애노테이션중에서 선호하는 것을 선택하기 어렵지만, 둘 중에서 하나를 고르라면 이름을 사용하는 @Resource 애노테이션보다는 타입을 사용하는 @Autowired 애노테이션을 선호한다.