当我想要配置客户并指定主题的名称时,不可能从配置中指定该名称,例如,这是使用Spring完成的

Quarkus:

@ApplicationScoped
public class Consumer {
    
    @Incoming("topic-name")  //is it possible to pass the value from the config here?
    public void consume(String s) {
        Log.info(s);
    }
}

在春天,它会是这样的

@Incoming("${topic.name}")  

Application.yml

topic:
   name: topic-name

是否可以将值从配置传输到Quarkus中的@Incoming("value")注释?

推荐答案

您必须在@Income注释中提供‘频道名称’,而不是‘主题名称’.

您的Java代码将如下所示:

@ApplicationScoped
public class Consumer {

   @Incoming("your-custom-channel-name")
   public void consume(String s) {
      Log.info(s);
   }
}

老实说,我从来没有使用过YML格式,只使用过Application.Properties文件.在这里,您将使用频道的每个属性定义频道(如主题):

mp.messaging.incoming.your-custom-channel-name.topic=your-topic-name
mp.messaging.incoming.your-custom-channel-name.auto.offset.reset=earliest
mp.messaging.incoming.your-custom-channel-name.group.id=${quarkus.kafka-streams.application-id}-my-private-group-id

我假设,如果您try 将其重新格式化为您的YML文件,它将如下所示(未经过测试):

mp:
  messaging:
    incoming: 
      your-custom-channel-name:
        topic: your-topic-name
        auto:
          offset:
            reset: earliest
        group:
          id: ${quarkus.kafka-streams.application-id}-my-private-group-id

按照Quarkus网站上的此指南,您可以逐步了解如何做到这一点:Reactive messaging with Kafka

Java相关问答推荐

我可以在regex中的字符类中放置断言吗?

OpenJDK、4K显示和文本质量

Mat. n_Delete()和Mat. n_release的区别

如何在Javascript中设置文本区域圆角的样式

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

我无法将附件发送到NetBeans之外

如何使用AWS CLI从S3存储桶中的所有对象中删除用户定义的元数据?

Java 21 struct 化连接货币,需要可预知的子任务异常排序

解释左移在Java中的工作原理

Com.google.firebase.database.DatabaseException:无法将类型为java.lang.Boolean的值转换为字符串.这是关于什么的?

从ActiveMQ Classic迁移到ActiveMQ Artemis需要进行哪些客户端更改?

是否在settings.xml中使用条件Maven镜像?

我可以在@Cacheable中使用枚举吗

将stringBuilder + forloop转换为stream + map

使用迭代器遍历HashMap不会因IF条件而停止

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

在打开搜索结果时,如何让Eclipse打开整个文件?

持续时间--为什么在秒为负数的情况下还要做额外的工作?

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

如何使用我的RLE程序解决此问题