目前,我有两个RestTemplate
豆子:
@Bean
@Primary
public RestTemplate jwtRestTemplate(
RestTemplateBuilder builder,
JWTService jwtService) {
return builder
.additionalInterceptors(
Collections.singletonList(
new JWTHeaderRequestInterceptor(jwtService)
)
)
.build();
}
@Bean
public RestTemplate rawRestTemplate(RestTemplateBuilder builder) {
return builder.build();
}
第一个是主要的,另一个是由 请求的@Qualifier("rawRestTemplate")
。
但是,我在ResTemplate
测试中嘲笑 a:
@RunWith(SpringRunner.class)
@SpringBootTest()
public class AuditoryTest {
@MockBean()
private RestTemplate frontOfficeRestTemplate;
@Autowired
private DocumentServiceBackOffice documentService;
DocumentServiceBackOffice
构造函数是:
public DocumentServiceBackOffice(RestTemplate restTemplate);
我遇到了一个例外:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in net.gencat.transversal.espaidoc.backoffice.service.DocumentServiceBackOffice required a single bean, but 2 were found:
- rawRestTemplate: defined by method 'rawRestTemplate' in class path resource [net/gencat/transversal/espaidoc/backoffice/config/BackOfficeConfiguration.class]
- jwtRestTemplate: defined by method 'createMock' in null
Action:
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed
消息很清楚,但我不太清楚如何解决这个问题。
有任何想法吗?