[英]Spring Bean creation from database
我正在使用@Configuration來配置RestTemplate bean的創建,它需要一些信息,例如API密鑰和主機等。
問題是,我需要能夠制作許多與從數據庫中獲取的API密鑰相匹配的bean。
我的代碼現在看起來像這樣:
@Configuration
public class DandomainProperties {
private String apiKey;
private String host;
private String ordersPath;
private String orderPath;
private String manufacturerPath;
private DanDomainRestTemplate danDomainRestTemplate;
@Bean
DanDomainRestTemplate danDomainRestTemplate(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder
.basicAuthentication("", this.apiKey)
.build(DanDomainRestTemplate.class);
}
因此,基本上,我需要更改配置,然后創建一個匹配的RestTemplate bean,任意次。
據您所知,您想針對每種情況創建一個restTemplate,也許您可以將@Configuration bean提供程序替換為提供各種API的服務?
例如:
@Service
public class DandomainApiProvider {
@Autowired
private ApiRepository apiRepository;
@Autowired
private DanDomainRestTemplate danDomainRestTemplate;
DanDomainRestTemplate restTemplateOf(String queryId) {
// Fetch apikeys from DB by repository
String apiKey = apiRepository.queryApiKey(queryId);
return restTemplateBuilder
.basicAuthentication("", apiKey)
.build(DanDomainRestTemplate.class);
}
使用DanDomainRestTemplate您自己的實現以及ApiRepository的一些定義,例如:
public interfadce ApiRepository {
// Query apiKey by ID
String queryApiKey(String queryId);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.