From abac0914f4a960f65189867b261e11cc65de569c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E6=A2=A6?= <1101766085@qq.com> Date: Fri, 29 Jul 2022 14:43:13 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20mica-mqtt=20client=20stater=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mqtt/spring/client/MqttClientSubscribeDetector.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientSubscribeDetector.java b/starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientSubscribeDetector.java index 629731d..de9eed5 100644 --- a/starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientSubscribeDetector.java +++ b/starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientSubscribeDetector.java @@ -19,6 +19,7 @@ package net.dreamlu.iot.mqtt.spring.client; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.dreamlu.iot.mqtt.core.client.IMqttClientMessageListener; +import net.dreamlu.iot.mqtt.core.util.TopicUtil; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.ApplicationContext; @@ -94,7 +95,12 @@ public class MqttClientSubscribeDetector implements BeanPostProcessor { } private static String[] getTopicFilters(ApplicationContext applicationContext, String[] values) { - return Arrays.stream(values).map(applicationContext.getEnvironment()::resolvePlaceholders).toArray(String[]::new); + // 1. 替换 Spring boot env 变量 + // 2. 替换订阅中的其他变量 + return Arrays.stream(values) + .map(applicationContext.getEnvironment()::resolvePlaceholders) + .map(TopicUtil::getTopicFilter) + .toArray(String[]::new); } } -- GitLab