因此,根据Spring的文档,它将在REST端点和消息通道上发布指标。
当我得到预期的结果时,REST端点工作正常。但是,我想处理指标中的每个更改。因此它说它将默认将消息发布到一个名为“ metricsChannel”的频道
我试图创建下面的类来侦听此频道,但它似乎没有触发。Spring Boot应用程序的其他所有内容均保持默认状态。
package services.core; import org.springframework.stereotype.Service; import org.springframework.integration.annotation.ServiceActivator; @Service public class MetricService { @ServiceActivator(inputChannel = "metricsChannel") public void handleMessage(org.springframework.messaging.Message<?> message) { System.out.println("Message [" + message.toString() + "] is received"); } }
我刚刚测试了一下,效果很好:
@Bean @ServiceActivator(inputChannel = "metricsChannel") public MessageHandler metricsHandler() { return System.out::println; }
我已经在部分web-sockets 样本中做到了这一点server。添加了以下内容:
web-sockets
server
compile 'org.springframework.boot:spring-boot-starter-actuator'
到该项目的Gradle配置。
当我启动client应用程序时,我在控制台中看到了这一点:
client
GenericMessage [payload=Metric [name=gauge.response.time.star-star, value=26.0, timestamp=Tue Apr 14 16:03:53 EEST 2015], headers={metricName=gauge.response.time.star-star, id=08697a97-83c1-5000-f031-65f6797c0cd8, timestamp=1429016633672}] GenericMessage [payload=Metric [name=counter.status.101.time.star-star, value=1, timestamp=Tue Apr 14 16:03:53 EEST 2015], headers={metricName=counter.status.101.time.star-star, id=8d070cb4-88e8-f5a7-6b83-6b27edf75bfc, timestamp=1429016633674}]
但是,是的:您的代码也很好。