gpt4 book ai didi

java - Spring Boot 和 Azure : initialise bean before auto-configuration

转载 作者:行者123 更新时间:2023-12-01 18:14:51 24 4
gpt4 key购买 nike

尝试设置 Sprint 启动应用程序以从 Azure App Configuration 加载配置,引用 Azure Key Vault包含敏感信息的属性条目。

使用应用程序配置工作正常,但将 Key Vault 引用添加到应用程序配置时出现问题。

为了连接到 Key Vault,AzureConfigBootstrapConfiguration 会查找 KeyVaultCredentialProvider bean,该 bean 在加载时不可用:

@Bean
public AzureConfigPropertySourceLocator sourceLocator(AzureCloudConfigProperties properties,
AppConfigProviderProperties appProperties, ClientStore clients, ApplicationContext context) {
KeyVaultCredentialProvider keyVaultCredentialProvider = null;
try {
keyVaultCredentialProvider = context.getBean(KeyVaultCredentialProvider.class);
} catch (NoUniqueBeanDefinitionException e) {
LOGGER.error("Failed to find unique TokenCredentialProvider Bean for authentication.", e);
if (properties.isFailFast()) {
throw e;
}
} catch (NoSuchBeanDefinitionException e) {
LOGGER.info("No TokenCredentialProvider found.");
}
return new AzureConfigPropertySourceLocator(properties, appProperties, clients, keyVaultCredentialProvider);
}

尝试创建具有最高优先级的 bean,但它不起作用:

@Configuration
public class DemoConfiguration {
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public KeyVaultCredentialProvider keyVaultCredentialProvider() {
return uri -> new EnvironmentCredentialBuilder().build();
}
}

还尝试在bean上使用@Primary@Priority,以及在DemoConfiguration上使用@AutoConfigureBefore(AzureConfigBootstrapConfiguration.class) code> 类,但没有一个替代方案有效。

问题:您知道如何在初始化AzureConfigBootstrapConfiguration之前创建KeyVaultCredentialProvider bean吗?

最佳答案

如果不知道您的案例中引发的确切异常和堆栈跟踪,则很难给出任何提示。

但是,如果运行时确实缺少配置,则强制执行自己的配置顺序的另一种方法是:

public static void main(String[] args) {
SpringApplication.run(
new Class[]{ YourSpringBootApplication.class,
KeyVaultCredentialProvider.class,
AzureConfigBootstrapConfiguration.class // , ...
}, args);
}

Class 数组包含在应用程序启动时加载的主要源列表。因此此列表不需要包含所有组件和配置。

关于java - Spring Boot 和 Azure : initialise bean before auto-configuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60394463/

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