camel propertyplaceholder environment特定文件

时间:2015-11-05 18:16:38

标签: apache-camel

我正在使用apache camel 2.15.1,我有三个属性文件在类路径中特定于环境,如myprop.properties, myprop-enva.properties, myprop-envb.properties. 我在camelcontext中使用propertyplaceholder,我可以加载myprop.properties。

当websphere env.prop = _enva

时,我不知道如何加载myprop-enva.properties

我当前的配置看起来像这样..

    <propertyPlaceholder location="classpath:myprop.properties" //Here I need to modify to make it work
        id="placeholder1" />

我尝试更改为location="classpath:myprop${env.prop}.properties",但没有效果。

2 个答案:

答案 0 :(得分:1)

您可以使用blueprint属性占位符,然后将从服务器加载特定于环境的cfg文件。不同的服务器 - 不同的cfg文件。

或者您可以在包阶段将特定属性文件放入包中(使用maven配置文件)。

extension Array {
    mutating func shuffleString() {
        for index in 0..<(count - 1) {
            let j = Int(arc4random_uniform(UInt32(count - index))) + index
            guard i != j else { continue }
            swap(&self[index], &self[j])
        }
    }
}

答案 1 :(得分:1)

您可以添加属性文件的所有位置,并添加ignore选项,然后Camel将跳过不存在的文件。在该位置,您可以参考ENV名称。

查看Camel文档中的更多详细信息