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

zpgglvta  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(118)

我使用azure-spring-boot-starter-servicebus-jms依赖项从azure主题服务总线读取消息。目前,文档说在应用程序属性中提供连接字符串,但我需要从azure keyvault读取连接字符串。Jms lib有AzureServiceBusJMSProperties,它从application.properties读取连接字符串...所以我得到错误“应该提供spring.jms. servebus.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/autoconfigure/jms/AzureServiceBusJMSProperties.java

67up9zun

67up9zun1#

  • 下面是数据源的示例代码,它从应用程序属性中读取所有公共属性
@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;
}
  • 如果您遇到有关Netty依赖性的任何问题,请查看此SO以获取完整信息,并查看此Github文档。
bwleehnv

bwleehnv2#

如果您想手动设置自己的连接字符串,请使用Hi。请禁用/排除使用AzureServiceBusJMSProperties的自动配置文件,并且您还需要在排除的文件中创建所需的bean。
看看
https://www.appsloveworld.com/springboot/100/244/azure-service-bus-configuration-via-code-spring

相关问题