osgi - 从 Java 访问 Karaf cfg 文件中的属性?

标签 osgi config karaf blueprint property-placeholder

我在蓝图中使用 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/

相关文章:

java - 在 OSGi 中配置 servlet 的身份验证

java - GradlecompileJava任务不断失败

java - OSGI 和 Spring 异常 : Caused by: java. lang.ClassCastException:$Proxy17 无法转换为

java - 如何在后台线程中获取 ResourceResolver?

java - 从 unwrapped() 获得的 java ArrayList 转换为 Scala 列表

apache-camel - 如何为 Pax Web DefaultResourceMapping 指定 Jetty 连接器

java - Karaf 包加载优先级

java - 使用 maven tycho 构建 list 条目 Bundle-ClassPath,该 list 条目由 maven-dependency-plugin 下载

PHP:是否有保存配置数据的正确方法?

redis - 无法在 Redis 数据库中配置端口