@Bean public Mono mqttClient() { return Mono.fromCallable(() -> { MqttClient mqttClient = new MqttClient(mqttPropertyConfig.getBroker(), MqttClient.generateClientId()); MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); mqttConnectOptions.setAutomaticReconnect(true); mqttConnectOptions.setUserName(mqttPropertyConfig.getUsername()); mqttConnectOptions.setPassword(mqttPropertyConfig.getPassword().toCharArray()); mqttClient.connect(mqttConnectOptions); return mqttClient; }).subscribeOn(Schedulers.boundedElastic()); }

在需要使用 MqttClient 对象的地方,可以使用 flatMap() 方法将 Mono 转换为 Mono, 然后使用 subscribe() 方法来获取 MqttClient 对象。示例代码如下:

@Autowired private Mono mqttClientMono;

public void doSomething() { mqttClientMono.flatMap(mqttClient -> { // 在这里使用 MqttClient 对象 return Mono.just(mqttClient); }).subscribe(); }

在上面的示例代码中,首先注入了一个 Mono 对象,然后在 doSomething() 方法中,使用 flatMap() 方法将 Mono 转换为 Mono, 然后在 flatMap() 方法中使用 MqttClient 对象进行具体的操作。最后使用 subscribe() 方法来订阅 Mono

Spring Boot 中使用 @Bean 注解创建 MqttClient 对象并使用 subscribe() 获取

原文地址: https://www.cveoy.top/t/topic/n9Mr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录