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生成可以解决问题

浙公网安备 33010602011771号