2017-07-30 23 views
1

@Configuration類,RestTemplate定義如下:型org.springframework.web.client.RestOperations的否合格的豆可用

@Bean 
public RestTemplate restTemplate(RestTemplateBuilder builder) { 
    return builder.build(); 
} 

@Autowired 
private RestTemplate restTemplate; 

在測試類,具有註解聲明如下RestOperations定義爲:

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 
@ContextConfiguration(classes = {Application.class}) 
@ActiveProfiles("test") 

@MockBean 
private RestOperations restOperations; 

它給錯誤提示,

Unsatisfied dependency expressed through constructor parameter 0; nested exception is 
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying 
bean of type 'org.springframework.web.client.RestOperations' available: 
expected single matching bean but found 2: restTemplate,createRestTemplate 

謝謝你的幫助。

+0

您的問題可能被標記......你需要提供足夠的代碼,這將有助於我們「破譯」您的問題,或者至少讓我們試運行,所以我們可以把它理解 –

+0

顯示我們你的配置類,你用2個實現自動裝配接口,而不指定使用哪個實現。 –

+0

您有一個名爲createRestTemplate的bean。 – Laurynas

回答

1

看起來好像你有2個不同的爲RestTemplate定義的bean,一個是「restTemplate」,另一個是「createRestTemplate」。因此使用@Qualifier並提供相應的bean id。請參閱下,

@Autowired @Qualifier("{bean_id}") private RestTemplate restTemplate;