我正在使用 azure-spring-boot-starter-servicebus-jms 依赖项从 azure 主题服务总线读取消息。目前,文档说要在应用程序属性中提供连接字符串,但我需要从 azure keyvault 读取连接字符串。 Jms lib 有 AzureServiceBusJMSProperties,它从 application.properties 读取连接字符串。所以我收到错误“应提供 spring.jms.servicebus.connection-string”。如何将从 azure keyvault 读取的值注入到此应用程序属性中?
@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;
}
您好,如果您想手动设置自己的连接字符串。请禁用/排除使用 AzureServiceBusJMSProperties 的自动配置文件,并且您还需要创建该排除文件中所需的 bean。
看一下
https://www.appsloveworld.com/springboot/100/244/azure-service-bus-configuration-via-code-spring