[Spring] @Autowired와 @Resource

유진·2025년 3월 17일

Spring

목록 보기
10/11

빈 검색

@Resource - 이름으로 빈을 검색한다.
@Autowired - 타입으로 빈을 검색한다.

class Car{
	@Resource(name="superEngine")
    Engine engine;
}
------------------------------------
class Car{
	//@Resource(name="engine")
    @Resource
    Engine engine;
}
------------------------------------
class Car{
	@Autowired
    @Qualifier("superEngine")
    Engine engine;
}

여기서 검색했을 때 일치하는 이름의 빈이 없으면 오류가 발생한다.
1번은 직접 이름을 명시해주는 경우이고, 2번은 직접 이름을 명시해주지 않는 경우다.
2번의 경우 해당 클래스의 이름을 첫글자를 소문자로 바꾼 이름으로 알아서 설정해주기 때문에, 만약 클래스의 이름과 동일한 이름으로 설정하고 싶으면 따로 이름을 명시해주지 않아도 된다.
스프링에서는 @Autowired+@Qualifier를 사용한다.
@Autowired에 따라 빈을 먼저 타입을 기준으로 검색한다.
그 후 그 결과에서 @Qualifier에 붙은 이름을 가진 빈을 검색하는 것이다.

0개의 댓글