0

全て

jboss-service.xml拡張SystemPropertiesServiceクラスを使用してカスタムプロパティファイルを参照するものを見てきました。しかし、私はまだこの種の使用法を完全には理解していませんでした。誰かが私にこれらの2つのクラスの使い方を理解するための助けを教えてもらえますか?ありがとう。

4

2 に答える 2

2

SystemPropertiesServiceは、アプリケーションからアクセスできるプロパティを定義するのに非常に便利です。通常、コードやアプリケーションパッケージ(jboss-service.xmlをde war /の外に配置した場合)を変更せずにアプリケーションをパラメーター化するために使用されます。耳/瓶の構造)。たとえば、次の内容のmyapp-service.xmlファイルを作成できます。

<server>
 <mbean code="org.jboss.varia.property.SystemPropertiesService" name="jboss:type=Service,name=MyAppProperties">
 <!-- Define the properties directly in the service.xml file-->
 <attribute name="Properties">
     myapp.property1=property1Value
     myapp.property2=property2Value
 </attribute>
 <!-- You can also specify a route to another file where you define properties-->
 <attribute name="URLList">
     /home/myuser/txtlist.properties
 </attribute>
 </mbean>
</server>

次に、このファイルをJBossに直接デプロイできます。定義されたプロパティは、同じJBossにデプロイされたすべてのアプリケーションに表示され、静的メソッドを使用してそれらにアクセスできます。

String System.getProperty(String propertyName)

したがって、アプリケーションからmyapp.property1の値にアクセスする場合は、次のようにします。

String property = System.getProperty("myapp.property");

一方、PropertyListenerは、実際には、プロパティでイベントが発生したときにトリガーされるリスナーを定義するインターフェイスです。org.jboss.util.property.PropertyAdapterは、このインターフェースの抽象的な実装です。これを使用するには、3つのメソッド(propertyAdded、propertyChanged、propertyRemoved)を実装する必要があります。これらのメソッドは、プロパティがそれぞれ追加、変更、または削除されたときにコンテナーによって呼び出されます。これらのメソッドには、パラメーターとしてPropertyEventオブジェクトがあり、影響を受けるプロパティを通知します。

このインターフェース/クラスは、プロパティが変更されるたびにアプリケーションに何かを実行させたい場合(悪い実装では、プロパティの変更を特定の時間ごとにチェックすることです)、このように、JBossがプロパティの値が変更されたことを検出したときに役立ちます。 、それぞれのメソッドを呼び出します(必要な動作で実装する必要があります)。

たとえば、変更されるたびに新しいプロパティ値を出力する場合は、次のようにpropertyChangedメソッドを実装できます。

void propertyChanged (PropertyEvent pe){
    // check the property that has changed
    if (pe.getPropertyName().equals("myapp.property1")){
         System.out.println("The value of " + pe.getPropertyName() + " has changed to " + pe.getPropertyValue());
    }
}

API、およびPropertyAdapterPropertyEventで詳細情報を探してください。

于 2013-01-29T08:21:51.583 に答える
0

JBOSS 5.1では、プロパティまたはURLをproperties-service.xmlに配置した場合にのみ機能し、このファイルはjboss.home / server / default/deployディレクトリに配置する必要があります。

于 2014-08-02T20:13:34.653 に答える