spring-boot - 如何在@StreamListener 中添加日期条件
问题描述
假设,我能够通过 Kafka 或 RabbitMQ 发送消息并使用 @StreamListener 使用它们。
绑定器配置为 content-type = 'application/json',所以我想可以在有效负载上添加条件。
我的要求是仅在字段的日期在 now() 之前获取元素。当此条件为真时,将消耗所有其他元素。
例如,我希望类似:
@StreamListener(value = INPUT, condition = "data.startDate > now()")
public void onMessage(@Payload Data data) {
// ...
}
第一个问题是我收到错误:EL1008E:在“byte []”类型的对象上找不到属性或字段“startDate”-可能不是公共的或无效的?
解决方案
这是正确的,因为有效负载没有转换为任何类型,而是以其原始形式存在,即byte[]
. 请参阅本节具体“条件上下文中的内容类型协商”小节。
但是,对于您的情况,您可以简单地将表达式修改为类似new String(payload)....
,知道它总是byte[]
在它被转换之前
推荐阅读
- c# - 尝试以 windows 形式捕获数组
- r - 有没有办法通过从 R 中的列表加入来创建数据框?
- android-studio - Intel haxm 安装失败?
- r - 通过匹配多个条件根据另一个数据帧过滤一个数据帧中的记录
- amazon-web-services - AWS Athena 展平嵌套列而不丢失空行
- flutter - Dart - 将泛型类型 (T) 约束为枚举
- json - 用于反序列化动态 JSON 数据的类
- selenium - Selenium C# 如何找到正确的框架来关注并找到元素?
- r - 对 MCA 对象 FactoMineR 进行预测时出错
- neo4j - 如何创建一个值为 count() 的节点?