我正在使用Spring Boot,并且正在使用第三方API accessToken(通过传递clientId和clientSecret)。
public String getAccessToken(){
return token;
}
现在,在我所有的服务中,要确保使用第三方API,我肯定需要一个accessToken,因此在每个Service类中,我都在调用getAccessToken()以获取令牌,然后进行实际的其余调用。
通过以上操作,其工作正常。但是我某种程度上感觉像在所有服务类中到处都是重复代码,即getAccessToken()
。避免重复的最佳方法是什么?最重要的是,我永远都不要在任何服务类中都获得inValid accessToken]
当您使用第三方API时,必须有一个通用代码。
如果使用RestTemplate
添加ClientHttpRequestInterceptor
RestTemplate template = new RestTemplateBuilder()
.additionalInterceptors((httpRequest, bytes, clientHttpRequestExecution) -> {
httpRequest.getHeaders().add("Authorization", getAccessToken());
return clientHttpRequestExecution.execute(httpRequest, bytes);
})
.build();
然后是>>
@Autowired
private RestTemplate restTemplate
public yourResp yourFunc(String param){
... = restTemplate.getFor...
}