如何在Micronaut中根据环境配置动态设置@Topic注解的Pub/Sub主题值
可以通过Micronaut内置的配置属性占位符机制实现,无需编写多套实现类,具体操作如下:
1. 配置多环境主题属性
在你的Micronaut项目中按环境拆分配置文件:
- 开发环境配置文件
application-dev.yml新增配置:
gcp: pubsub: topics: a: topic-a b: topic-b
- 测试环境配置文件
application-qa.yml新增配置:
gcp: pubsub: topics: a: topic-a-qa b: topic-b-qa
2. 修改@Topic注解使用占位符
把原来硬编码的主题名替换为配置占位符,修改后的代码如下:
@PubSubClient public interface PubSubService { @Topic("${gcp.pubsub.topics.a}") void send(final A a); @Topic("${gcp.pubsub.topics.b}") void send(final B b); }
3. 启动指定环境
部署启动服务时指定对应环境标识即可自动加载对应主题配置,例如QA环境启动时添加启动参数:java -Dmicronaut.environments=qa -jar your-app.jar
补充说明
Micronaut的所有注解属性原生支持${配置键:默认值}格式的占位符,框架启动时会自动从激活环境的配置中读取对应值注入,不需要额外自定义逻辑。如果需要配置默认值避免配置缺失报错,可以写成${gcp.pubsub.topics.a:topic-a-default}。
内容的提问来源于stack exchange,提问作者Piyush Vishwakarma
相关产品推荐
相关产品推荐

