스프링부트

@Qualifier와 @Autowired

Choony 2024. 1. 9. 15:40

ChatGPT API를 사용하려던 도중 

@Qualifier를 사용하여 Bean 이름을 등록해 주었다.

 

@Qualifier("openaiRestTemplate")
private final RestTemplate restTemplate;

 

 

Controller에서 사용하기 위해 이런식으로 사용하려고 했는데.... 엥 안되네?

 

찾아보니 @Qualifier는 @Autowired와 함께 사용해야 한다고 되어있어서 

@Qualifier("openaiRestTemplate")
@Autowired
private RestTemplate restTemplate;

이런식으로 변경해주니 문제없이 돌아갔다!

 

 

다만, Field injection이 not recommend라니 Constructor Injection을 이용하는 방식으로는

public Example(@Qualifier("openaiRestTemplate") RestTemplate restTemplate) {
	restTemplate = this.restTemplate;
}

 

이런 식으로 이용할 수 있다!