如何在springboot中提供从azure keyvault读取的连接字符串到Azure服务总线Jms启动器?

问题描述 投票:0回答:2

我正在使用 azure-spring-boot-starter-servicebus-jms 依赖项从 azure 主题服务总线读取消息。目前,文档说要在应用程序属性中提供连接字符串,但我需要从 azure keyvault 读取连接字符串。 Jms lib 有 AzureServiceBusJMSProperties,它从 application.properties 读取连接字符串。所以我收到错误“应提供 spring.jms.servicebus.connection-string”。如何将从 azure keyvault 读取的值注入到此应用程序属性中?

lib代码链接:https://github.com/Azure/azure-sdk-for-java/blob/e81850c3fcebe0bbfe65ed3e8a1c7c0c607798cf/sdk/spring/azure-spring-boot/src/main/java/com/azure/spring /自动配置/jms/AzureServiceBusJMSProperties.java

java spring spring-boot azure azureservicebus
2个回答
0
投票
  • 这里是数据源的示例代码,它从应用程序属性中读取所有公共属性
@Value("${db-user}")
String dbUser;

@Value("${db-password}")
String dbPwd;

@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource getDataSource() {
    DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.username(dbUser);
    dataSourceBuilder.password(dbPwd);
    return dataSourceBuilder.build();
}
  • 所有使用的值都使用
    @Value
    -annotation
  • 进行注入
@Bean
public ServletWebServerFactory servletContainer() {

    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    TomcatConnectorCustomizer tomcatConnectorCustomizer = connector -> {
        connector.setPort(port);
        connector.setScheme("https");
        connector.setSecure(true);

        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
        protocol.setSSLEnabled(true);
        protocol.setKeystoreType(keyStoreType);
        protocol.setKeystoreProvider(keyStoreProvider);
        protocol.setKeystoreFile(keyStorePath);
        protocol.setKeystorePass(keyStorePassword);
        protocol.setKeyAlias(keyAlias);
        protocol.setTruststoreFile(trustStorePath);
        protocol.setTruststorePass(trustStorePassword);
        protocol.setSSLVerifyClient(clientAuth);
    };

    tomcat.addConnectorCustomizers(tomcatConnectorCustomizer);
    return tomcat;
}
  • 另请检查此 SO 以获取完整信息,如果您遇到有关 Netty 依赖项的任何问题,请检查此 Github 文档。

0
投票

您好,如果您想手动设置自己的连接字符串。请禁用/排除使用 AzureServiceBusJMSProperties 的自动配置文件,并且您还需要创建该排除文件中所需的 bean。

看一下

https://www.appsloveworld.com/springboot/100/244/azure-service-bus-configuration-via-code-spring

© www.soinside.com 2019 - 2024. All rights reserved.