我正在使用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中,该怎么做。
答案 0 :(得分:0)
请考虑创建一个BeanFactory来生成给定主题名称的PubSubMessageHandler Bean。 PubSubMessageHandler还有一个setTopic()方法,可能有用。