0

我们正在使用Jboss fuse 6.2 along with technical stack blueprint,camel ,activeMQ and Mybatis.

我们需要知道如何配置属性文件OSGI ,据我所知,我们可以配置 .cfg 文件,但是有没有像 spring 配置配置那样最简单的使用方法。

在我们的代码中,我们从属性文件中读取。使用命名空间 ext:proeprtyplaceHolder 给出我们给出的 bean id 和值。提供帮助是否有任何最简单的方法来读取属性文件

4

1 回答 1

1

有几种添加配置的方法,因为 OSGi 服务可以通过 ConfigurationAdmin 服务访问配置。蓝图还可以访问其上的属性值。JBoss fuse 使用 karaf,所以可以使用以下方法。

(有一些引述来自http://www.liquid-reality.de/display/liquid/2011/09/23/Karaf+Tutorial+Part+2+-+Using+the+Configuration+Admin+Service

使用蓝图进行配置

与我们的 bean 类的集成主要是一个简单的 bean 定义,我们在其中定义 title 属性并分配将使用配置管理服务解决的占位符。唯一特别的是init方法。这用于让我们有机会在进行所有更改后做出反应,就像在纯 OSGi 示例中一样。对于蓝图,我们不需要任何 maven 依赖项,因为我们的 Java 代码是纯 Java bean。只需将蓝图上下文放入 OSGI-INF/blueprint 目录并加载蓝图扩展程序即可激活蓝图上下文。由于蓝图总是在 Karaf 中加载,我们不需要其他任何东西。

<cm:property-placeholder persistent-id="ConfigApp" update-strategy="reload" >
    <cm:default-properties>
         <cm:property name="title" value="Default Title"/>
    </cm:default-properties>
</cm:property-placeholder>

<bean id="myApp" init-method="refresh">
    <property name="title" value="${title}"></property>
</bean>

在您可以将 cfg 文件(这是一个标准的 java 属性文件)放入 karaf 的 etc 或使用给定的持久 id 的名称(在我们的示例中为 MyApp)部署目录之后。(例如:/etc/ConfigApp.cfg)

title=Configured title
于 2015-11-21T14:52:06.287 回答