0
私は、MQTTブローカを購読するSpringBootApplicationを持っています。 MQTTメッセージはDatabaseに保存する必要がありますが、@ Autouiredサービスにはアクセスできません。Springアクセス@ AbstractMessageHandlerの自動サービス
私が手例外:
Field deviceService in com.example.MqttMessageHandler required a bean of type 'com.example.service.DeviceService' that could not be found.
MQTTApiApplication.java
@SpringBootApplication(scanBasePackages = "{com.example}")
public class MQTTApiApplication {
public static void main(String[] args) {
SpringApplicationBuilder(MQTTApiApplication.class)
.web(false).run(args);
}
@Bean
public IntegrationFlow mqttInFlow() {
return IntegrationFlows.from(mqttInbound())
.handle(new MqttMessageHandler())
.get();
}
}
MqttMessageHandler.java
public class MqttMessageHandler extends AbstractMessageHandler {
@Autowired
DeviceService deviceService;
@Override
protected void handleMessageInternal(Message<?> message) throws Exception {
deviceService.saveDevice(new Device());
}
}
はい、私は@Component追加しました表記法では、同じエラーが発生します。私は通常RestControllerからサービスにアクセスしています。 – mkdeki
DeviceServiceはどうですか? –
DeviceServiceをRestControllerに入れると、DeviceService(Autowired)にアクセスできます。 問題は、MqttMessageHandlerからAutowired Services/Controllersにアクセスできないことです。 – mkdeki