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

Camel YAML DSL中Bean相互引用的正确语法咨询

问题解决:Camel YAML DSL中Bean间引用的正确语法

你的核心问题是Bean引用的语法错误,在Camel YAML DSL中,引用已定义的Bean不需要使用双大括号{{}}(这是属性占位符的语法),正确格式是#bean:bean名称。

修正后的完整Bean配置如下:

- beans:
  - name: mqConnectionFactory
    type: "#class:com.ibm.mq.jakarta.jms.MQQueueConnectionFactory"
    properties:
      hostName: localhost
      port: 1414  # 数字类型无需加引号
      transportType: 1  # 对应WMQ_CM_CLIENT的常量值
      channel: CHANNEL
      queueManager: QM1
  - name: userCredsConnectionFactory
    type: "#class:org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"
    properties:
      username: username
      password: password
      targetConnectionFactory: "#bean:mqConnectionFactory"  # 正确的Bean引用语法
  - name: wmqCachingConnectionFactory
    type: "#class:org.springframework.jms.connection.CachingConnectionFactory"
    properties:
      sessionCacheSize: 500  # 数字类型无需加引号
      reconnectOnException: true  # 布尔类型无需加引号
      targetConnectionFactory: "#bean:userCredsConnectionFactory"  # 正确的Bean引用语法

额外注意事项:

  • 属性类型匹配:port、sessionCacheSize是整数类型,reconnectOnException是布尔类型,不需要加引号,加引号会被解析为字符串,可能导致类型转换错误。
  • Bean定义顺序:确保被引用的Bean在配置中先定义(比如mqConnectionFactory要在userCredsConnectionFactory之前),这样Spring容器初始化时能正确找到依赖Bean。
  • 常量可读性优化:transportType: 1对应CommonConstants.WMQ_CM_CLIENT的常量值,也可以直接使用全限定名的常量引用:transportType: "#class:com.ibm.mq.jakarta.jms.CommonConstants.WMQ_CM_CLIENT",提升配置可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:01:07