springboot整合mqtt问题记录

在使用如下代码配置mqtt网关时,发生问题

@Component
@MessagingGateway(defaultRequestChannel = "outPutChannel")
public interface MyMqttGateway {
    void sendToMqtt(String payload,@Header(MqttHeaders.TOPIC) String topic);
}

报错信息
Description: The bean 'myMqttGateway' could not be registered. A bean with that name has already been defined and overriding is disabled.
Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
它告诉我可以在配置文件中配置spring.main.allow-bean-definition-overriding=true解决问题
但我不想……
于是,我选择修改代码(已解决):

@Component
@ConditionalOnBean(name = "outPutChannel")
@MessagingGateway(defaultRequestChannel = "outPutChannel")
public interface MyMqttGateway {
    void sendToMqtt(String payload,@Header(MqttHeaders.TOPIC) String topic);
}

额外问题:clientId重复问题,我使用UUID生成可以解决问题

posted @ 2024-12-18 22:26  *屏风光芒无限亮  阅读(133)  评论(0)    收藏  举报