我们正在使用Jboss fuse 6.2 along with technical stack blueprint,camel ,activeMQ and Mybatis.
我们需要了解如何在OSGI
中配置属性文件,
据我所知,我们可以配置.cfg文件,但是有没有最简单的方法可以使用spring配置配置。
在我们的代码中,我们正在读取属性文件。使用命名空间ext:proeprtyplaceHolder给出我们给出的bean id和值。 帮助提供是否有任何最简单的方法来读取属性文件
答案 0 :(得分:1)
有几种方法可以添加配置,因为OSGi服务可以通过ConfigurationAdmin服务访问配置。蓝图还可以通过它访问属性值。 JBoss使用karaf保险丝,因此可以使用以下方法。
使用蓝图进行配置
与我们的bean类的集成主要是一个简单的bean定义,我们定义title属性并分配将使用config admin服务解析的占位符。唯一特别的东西是init-method。这用于让我们有机会在完成所有更改之后做出反应,就像在纯OSGi示例中一样。 对于蓝图,我们不需要任何maven依赖,因为我们的Java代码是纯Java bean。蓝图上下文只需将其放入OSGI-INF / blueprint目录并加载蓝图扩展器即可激活。由于蓝图总是装在卡拉夫,我们不需要任何其他东西。
<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等或部署目录,其名称为给定的持久标识,在我们的示例中为MyApp。 (例如:/etc/ConfigApp.cfg)
title=Configured title