gpt4 book ai didi

java - 以编程方式从 Camel 上下文访问 Camel 属性

转载 作者:行者123 更新时间:2023-11-30 03:21:29 30 4
gpt4 key购买 nike

我目前正在做的项目使用camel作为路由框架。在 Spring 中配置 Camel 上下文时,我们传递一个属性文件,其中包含配置 Camel 路由或控制运行时行为时所需的一堆全局属性:

<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="my-id">
<camel:propertyPlaceholder location="my-system.properties" id="global-properties"/>
...
</camel:camelContext>

并假设 my-system.properties 有如下条目:

my-system.properties
# Global properties that control my-system configuration and run time
...
foo={{bar}}
...

配置路由时,我可以使用 {{foo}} 表示法访问 foo 属性。它也可用于使用 @PropertyInject 注释的其他 bean。然而,在我的设计中有一个用例,即一个不是由 spring 创建的普通 POJO(而是一个枚举,但这不相关)需要访问我的 foo 属性。因为这个 POJO 是通过 CamelContext 作为方法参数传递的,所以我很自然地认为我应该能够从那里获取 foo 的值。然而我花了一些时间,无法自己弄清楚如何。

我知道我可以再次加载属性文件,甚至可以获取系统属性System.getProperty("bar"),一切都会正常,但对我来说这看起来像是作弊。

最佳答案

CamelContext 上有一个用于解析属性占位符的 api - 它是 resolvePropertyPlaceholders 方法:

关于java - 以编程方式从 Camel 上下文访问 Camel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31214693/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com