0
Karaf Blueprint DIおよびOSGi Bundlesを使用してクラスに外部データを注入しようとしています。OSGi Karafで.cfgファイルの内容をリロードし、各クラスでBlueprintを使用します。
設定ファイルは、Karafホームの下など/ com.company.feature.config.cfgに位置しており、それは、このパラメータを含んでいる:attr1=test1
私の目標は、このパラメータにはMyClassのオブジェクトが呼び出されるたびに使用することです
または使用される。ファイルは赤です。ファイルがKarafの実行中に変更されないことに注意してください。
私の問題は、バンドルをインストールまたは更新した後で、コンソールの値が表示されることがあります。
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"... >
...
<!--
The file is located on etc/com.company.feature.config.cfg under Karaf,
and it contains "attr1=test1"
-->
<cm:property-placeholder persistent-id="com.company.feature.config" update-strategy="reload">
<cm:default-properties>
<cm:property name="attr1" value=""/>
</cm:default-properties>
</cm:property-placeholder>
<bean id="my-bean" class="package.MyClass" init-method="init">
<property name="attribute" value="${attr1}" />
</bean>
</blueprint>
ジャワMyClassのクラス:
このクラスのオブジェクトが呼び出されたときに、この後に、値がnull
青写真構成、OSGI-INF /青写真/のcontext.xmlに設定されています
class MyClass {
private String attribute;
//getter and setter
public MyClass(){
init();
}
private void init(){
System.out.println("data : " + attribute);
}
}
Karaf出力:
[email protected]()> data : null