在Micronaut中根据环境设置Pub子主题



我遵循这个指南来初始化一个GCP发布/订阅发布者。

编码语法如下:

@PubSubClient
public interface PubSubService {
@Topic("topic-a")
void send(final A a);
@Topic("topic-b")
void send(final B b);
}

我想根据环境设置此主题值,因为我将为QA/DEV设置不同的主题(例如topic-a-qatopic-b-qa)。我是否有办法通过或基于环境属性在@Topic注释中设置此字符串值?

我没有选择在GCP帐户下有一个不同的项目,也为QA创建一个不同的类,在维护环境时覆盖这个类并不那么优雅。

你可以在Micronaut的注释中使用占位符。

@PubSubClient
public interface PubSubService {
@Topic("${topic.a.name:topic-a}")
void send(final A a);
@Topic("${topic.b.name:topic-b}")
void send(final B b);
}

表达式${topic.a.name:topic-a}指示Micronaut在topic.a.name键下搜索配置中的值,如果没有找到配置键,则返回到值topic-a。然后,您可以使用application-qa.yml配置文件配置不同的主题名称:

<子>src/主/资源/application-qa.yml

topic:
a:
name: topic-a-qa
b:
name: topic-b-qa

最后,只要确保当你在QA环境中运行应用程序时,你设置了一个适当的活动环境,例如

$ java -Dmicronaut.environments=qa -jar myapp.jar

相关内容

  • 没有找到相关文章

最新更新