264.26. 使用开箱即用的功能


从 Camel 2.14.1 开始提供

Properties 组件包括开箱即用的以下功能

  • env - 从操作系统环境变量中查找属性的功能
  • sys - 从 Java JVM 系统属性查找属性的功能
  • service - 使用服务命名 idiom 从 OS 环境变量中查找属性的功能
  • service.name - Camel 2.16.1: 使用服务命名 idiom 从 OS 环境变量中查找属性的功能,仅返回主机名部分
  • service.port - Camel 2.16.1 : 使用服务命名 idiom 从 OS 环境变量中查找属性的功能,仅返回端口部分

正如您所见,这些功能旨在便于从环境中查找值。当它们开箱即用时,可轻松使用它们,如下所示:

  <camelContext xmlns="http://camel.apache.org/schema/blueprint">

    <route>
      <from uri="direct:start"/>
      <to uri="{`{env:SOMENAME}`}"/>
      <to uri="{`{sys:MyJvmPropertyName}`}"/>
    </route>
  </camelContext>
Copy to Clipboard Toggle word wrap

您还可以使用默认值,因此如果属性不存在,您可以定义一个默认值,如下所示,其中默认值为 log:foolog:bar 值。

  <camelContext xmlns="http://camel.apache.org/schema/blueprint">

    <route>
      <from uri="direct:start"/>
      <to uri="{`{env:SOMENAME:log:foo}`}"/>
      <to uri="{`{sys:MyJvmPropertyName:log:bar}`}"/>
    </route>
  </camelContext>
Copy to Clipboard Toggle word wrap

服务功能用于查找使用服务命名 idiom 定义的服务,以使用 主机名来引用服务位置:

  • NAME_SERVICE_HOST
  • NAME_SERVICE_PORT

换句话说,服务使用 _SERVICE_HOST_SERVICE_PORT 作为前缀。因此,如果服务命名为 FOO,则操作系统环境变量应设置为

export $FOO_SERVICE_HOST=myserver
export $FOO_SERVICE_PORT=8888
Copy to Clipboard Toggle word wrap

例如,如果 FOO 服务是一个远程 HTTP 服务,则我们可以引用 Camel 端点 uri 中的服务,并使用 HTTP 组件进行 HTTP 调用:

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
  <route>
    <from uri="direct:start"/>
    <to uri="http://{`{service:FOO}`}/myapp"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

如果服务尚未定义,我们可以使用默认值,例如要在 localhost 上调用服务,可能用于单元测试等

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
  <route>
    <from uri="direct:start"/>
    <to uri="http://{`{service:FOO:localhost:8080}`}/myapp"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat