我需要从数据库加载Blueprint XML的一些属性。如何在Blueprint XML中执行此操作?我一直在努力寻找蓝图的好例子。是否有类似于Spring PropertyPlaceholderConfigurer的内容?
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
xmlns:cxf="http://cxf.apache.org/blueprint/core"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd">
<jaxrs:server id="restService" address="{{url.in}}">
<jaxrs:serviceBeans>
<ref component-id="restSvc"/>
</jaxrs:serviceBeans>
</jaxrs:server>
</bean>
答案 0 :(得分:0)
Blueprint还有属性占位符(请参阅apache camel documentation)。
它不如spring强大,但它允许在属性文件中存储配置(在karaf的情况下,在/ etc目录中)并且karaf配置为对配置更改作出反应并调用confiugred的init-method豆。
示例配置:
<cm:property-placeholder persistent-id="com.example.persistence" update-strategy="reload">
<cm:default-properties>
<cm:property name="url.in" value="example.com/rest"/>
</cm:default-properties>
</cm:property-placeholder>
蓝图不如Spring强大,所以如果你想要那里没有提供的东西,你应该切换到Spring或者重新考虑你的架构。