You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Integration如何在XML中实现带时区的Cron轮询适配器

问题分析与正确XML配置实现

你的尝试配置存在几个明显问题:

  1. XML标签误用:PollerSpec是Spring Integration Java DSL专属类,XML配置中对应的正确标签是<int:poller>,而非<int:integration:PollerSpec>
  2. 属性语法错误:存在引号不匹配问题,且XML中时区属性名应为time-zone(短横线分隔命名),而非Java中的驼峰式timeZone
  3. 缺少消息生成逻辑:空的inbound-channel-adapter默认会发送null作为消息payload,若需要自定义payload,需补充对应配置

正确的XML配置示例

<int:inbound-channel-adapter channel="cronInput" expression="''">
    <int:poller cron="${bless.cron.expression}" time-zone="${bless.cron.timezone}"/>
</int:inbound-channel-adapter>

<int:channel id="cronInput" />

关键说明

  • <int:poller>直接作为<int:inbound-channel-adapter>的子标签,cron属性传入定时表达式,time-zone指定时区(支持通过占位符引用配置文件中的值)
  • 示例中expression="''"用于生成空字符串作为payload,若需自定义内容,可替换为具体SpEL表达式(如expression="new java.util.Date()"传入当前时间),或通过ref+method调用自定义Bean的方法生成payload
  • 你的核心理解是正确的:该适配器会按照指定的cron规则触发,将消息发送到cronInput通道,后续的服务激活器等端点可监听该通道处理消息

内容的提问来源于stack exchange,提问作者rairai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:45:13