Spring允許攔截其許多產品的消息,如RestTemplate和SpringMVC。是否可以攔截Spring Cloud Stream消息?對於傳入和傳出的消息。如何攔截Spring Cloud Stream消息?
2
A
回答
1
不確定你在這裏截取的意思 - 你給出的兩個例子都不是基於消息的:)。
但是您想要訪問完整的消息,可以將其用作參數@StreamListener
或@ServiceActivator
-annotated方法。此外,Spring Cloud Stream允許您設置完整的Spring集成管道,因此您可以添加建議和所需的所有內容 - 請參閱此處:https://github.com/spring-projects/spring-integration-java-dsl/wiki/Spring-Integration-Java-DSL-Reference。
我鼓勵大家看看Spring Integration參考資料以及http://docs.spring.io/autorepo/docs/spring-integration/4.2.6.RELEASE/reference/html/。 Spring Cloud Stream自動注入通道,從那裏您可以完全自由地構建管道。
希望這有助於 馬呂斯
7
之所以能夠攔截使用GlobalChannelInterceptor
註釋和ChannelInterceptor
接口的入站和出站春季雲流消息。見下面的示例。
import org.springframework.integration.config.GlobalChannelInterceptor;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.ChannelInterceptor;
import org.springframework.stereotype.Component;
@Component
@GlobalChannelInterceptor
public class Interceptor implements ChannelInterceptor {
private final Logger log = LoggerFactory.getLogger(Interceptor.class);
@Override
public Message<?> preSend(Message<?> msg, MessageChannel mc) {
log.info("In preSend");
return msg;
}
@Override
public void postSend(Message<?> msg, MessageChannel mc, boolean bln) {
log.info("In postSend");
}
@Override
public void afterSendCompletion(Message<?> msg, MessageChannel mc, boolean bln, Exception excptn) {
log.info("In afterSendCompletion");
}
@Override
public boolean preReceive(MessageChannel mc) {
log.info("In preReceive");
return true;
}
@Override
public Message<?> postReceive(Message<?> msg, MessageChannel mc) {
log.info("In postReceive");
return msg;
}
@Override
public void afterReceiveCompletion(Message<?> msg, MessageChannel mc, Exception excptn) {
log.info("In afterReceiveCompletion");
}
}
相關問題
- 1. 如何攔截SOAP消息
- 2. Spring/BlazeDS消息攔截器用例
- 3. Spring Cloud Stream + Quartz
- 4. Spring Cloud Stream RabbitMQ
- 5. NServiceBus消息攔截?
- 6. spring-cloud-stream kafka avro
- 7. spring-cloud-stream kafka消費者如何自動重新獲取unacknowledge消息?
- 8. Spring Soap攔截器如何修改消息的內容?
- 9. 從/到JSON轉換配置的Spring Cloud Stream消息
- 10. Spring Cloud Stream @ServiceActivator不會將消息發送到errorChannel異常
- 11. spring-cloud-stream請求回覆消息模式
- 12. jms消息攔截器
- 13. 攔截JSON消息 - Eclipse RAP
- 14. 攔截日誌消息slf4j
- 15. 如何使用Spring Cloud Stream應用程序啓動程序處理消息TCP
- 16. 如何編輯WCF消息 - WCF消息攔截器
- 17. Spring Cloud Stream 1.0.0-RELEASE和Threads
- 18. spring-cloud-Hystrix Stream with just Ribbon
- 19. spring-cloud-stream kafka json content-type
- 20. Mono <>與Spring Cloud Stream
- 21. Spring JMX攔截
- 22. Spring RestEasy攔截器
- 23. 攔截Spring MVC中
- 24. Spring Cache攔截器
- 25. 在Spring集成中使用攔截器發送日誌消息
- 26. 如何使用Spring攔截或過濾器攔截資源
- 27. Spring Security不攔截
- 28. 使我的子類攔截消息
- 29. Heroku攔截一些Gmail傳入消息
- 30. 攔截瀏覽器慢腳本消息
是的,我幾小時前開始閱讀Spring Integration,我想答案是GlobalChannelInterceptor。攔截器是一種常見的設計模式。它基本上是在你處理之前或之後得到請求或消息。 –
是的,在這種情況下'@ GlobalChannelInterceptor'應該會有幫助。 –