gpt4 book ai didi

java - 从数据库创建 Spring Bean

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:23 24 4
gpt4 key购买 nike

我正在使用 @Configuration 来配置 RestTemplate bean 的创建,它需要一些信息,例如 API key 和主机等。

问题是,我需要能够制作许多 bean,与从数据库中获取的许多 API key 相匹配。

我现在的代码如下所示:

@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,也许你可以用提供不同类型api的服务替换@Configuration bean提供者?

例如:

@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);
}

关于java - 从数据库创建 Spring Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53333826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com