gpt4 book ai didi

java - Spring 启动: push message to specific topic for each request

转载 作者:行者123 更新时间:2023-12-01 19:33:51 25 4
gpt4 key购买 nike

我正在使用 pub sub 与 spring boot 集成,我的配置类如下所示:

@Configuration
public class PubSubConfiguration {

@Value("${spring.pubsub.topic.name}")
private String topicName;

@Bean
@ServiceActivator(inputChannel = "MyOutputChannel")
public PubSubMessageHandler messageSender(PubSubTemplate pubsubTemplate) {
return new PubSubMessageHandler(pubsubTemplate, topicName);
}

@MessagingGateway(defaultRequestChannel = "MyOutputChannel")
public interface PubsubOutboundGateway {
void sendToPubsub(String attribute);
}

}

所以现在,我只调用 sendToPubSub 方法,该方法将有效负载从我的应用程序添加到主题中,如下所示:

@Autowired
private PubSubConfiguration.PubsubOutboundGateway outboundGateway;

// used line in my code wherever is needed.
outboundGateway.sendToPubsub(jsonInString);

上面的代码仅适用于我从应用程序属性文件加载的一个主题。

但是现在我想让我的主题名称动态添加到messageSender中,如何做到这一点。

最佳答案

要覆盖默认主题,您可以使用 GcpPubSubHeaders.TOPIC header 。

final Message<?> message = MessageBuilder
.withPayload(msg.getPayload())
.setHeader(GcpPubSubHeaders.TOPIC, "newTopic").build();

并修改您的sendToPubsub(Message<byte[]> message)使用消息作为输入。

Refer for more information

关于java - Spring 启动: push message to specific topic for each request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59239391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com