[英]Connect to RabbitMQ without providing username and password in Application properties in Spring Boot
我创建了一个 Spring Boot 应用程序并连接到了 RabbitMqlServer。我在 application.properties 中提供了用户名和密码,如下所示:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5673
spring.rabbitmq.username=password
spring.rabbitmq.password=password
javainuse.rabbitmq.exchange=exchange
javainuse.rabbitmq.queue=queue
javainuse.rabbitmq.routingkey=routingkey
但要求是在不指定 application.properties 中的密码的情况下执行此操作。
我尝试了文档,但他们谈论的是虚拟主机和用户,我不明白。 这是链接: https : //www.rabbitmq.com/access-control.html#seeding
我是 Spring Boot 和 RabbitMq 的新手,任何帮助表示赞赏。 提前致谢。
如果我理解正确,您的任务是使用密码连接到 RabbitMQ,但不应在application.properties
文件中指定此密码。
在这种情况下,您可以指定它,例如,通过环境变量SPRING_RABBITMQ_PASSWORD=<your password>
:
$ export SPRING_RABBITMQ_PASSWORD=<password>
$ java -jar my-rabbitmq-app.jar
# Or
$ SPRING_RABBITMQ_PASSWORD=<password> java -jar my-rabbitmq-app.jar
Spring boot 提供了多种应用配置方式,所以你可能想看一下文档: https : //docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html #boot-features-external-config
如果您想在从某些机密文件中读取用户名/密码时提及代码中的用户名/密码,您可以这样做:
@Bean
ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setUsername(YOUR_USERNAME);
connectionFactory.setPassword(YOUR_PASSWORD);
connectionFactory.setHost(YOUR_HOST);
connectionFactory.setPort(YOUR_PORT);
return connectionFactory;
}
@Bean
RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate();
rabbitTemplate.setConnectionFactory(connectionFactory);
return rabbitTemplate;
}
现在,您可以将 RabbitTemplate 与构建 ConnectionFactory 时提供的凭据一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.