我在蓝图中使用 cm:property-placeholder 来加载配置文件:
<!-- External configuration -->
<cm:property-placeholder persistent-id="mubyndle" update-strategy="reload">
<cm:default-properties>
<cm:property name="schemaValidation" value="false"/>
</cm:default-properties>
</cm:property-placeholder>
<bean id="myBean" class="com.mybean">
<property name="abc" value="${abc}" />
</bean>
我可以将值设置到 bean 中,例如 ${abc}。
如何从 java 访问配置的任何其他属性?
我打算添加属性列表: Prop 1=11 prop2=22 ... propn=nn
由于数量不同,我无法在蓝图中添加所有内容。
谢谢, 维克托
最佳答案
在蓝图中添加对ConfigurationAdmin服务的引用:
<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
将其设置为bean:
<bean id="myBean" class="com.mybean">
<property name="abc" value="${abc}" />
<property name="configAdmin" ref="configAdmin" />
</bean>
bean 类中:
private ConfigurationAdmin configAdmin;
public void setConfigAdmin(ConfigurationAdmin configAdmin) throws IOException {
this.configAdmin = configAdmin;
System.out.println(configAdmin);
System.out.println(configAdmin.getConfiguration("any-persistent-id").getProperties());
}
关于osgi - 从 Java 访问 Karaf cfg 文件中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827710/