我有一个简单的骆驼应用程序包,将在Apache服务混合6.1下部署在Karaf 3.0.5中。配置文件被放置在etc/
目录中(假设它被命名为wf.cfg
)。我想在我的应用程序包中具有动态配置更改功能。因此,只要wf.cfg
中的任何内容发生更改,都可立即进行捆绑。为此,我已经添加在下面我 blueprint.xml
动态配置加载在Karaf 3.0.5中的骆驼应用程序包
<cm:property-placeholder persistent-id="wf"
update-strategy="reload">
<cm:default-properties>
<cm:property name="env" value="local" />
</cm:default-properties>
</cm:property-placeholder>
<!-- a bean that uses a blueprint property placeholder -->
<bean id="configBean" class="com.jabong.orchestratorservice.basecomponent.config.ConfigBean">
<property name="env" value="${env}" />
</bean>
我现在面临的问题是,如果update-strategy
设置为reload
。然后它似乎在重新加载整个bean。
有人可以让我知道有没有办法,我可以重新加载只有configBean
不是整个捆绑?如果我可以实现这一点,那么我可以有一些静态引用到configBean
内的配置变量,然后我的应用程序包可以使用它吗?
完整的blueprint.xml
被放置here。
您可以请我指向“aries blueprint”/ camel文档,其中介绍了“managed-properties”? – tuk
说实话,白羊座的文件真的很小/不推荐,而'托管属性'不是蓝图的一部分,它是白羊座的延伸。但是,您可以检查源代码和测试,例如:https://github.com/apache/aries/blob/trunk/blueprint/blueprint-itests/src/test/resources/ManagedServiceFactoryTest.xml –