1

主に 2 つのノードを含むフローを作成しています。1) WMB ノード - MQ からメッセージを取得します。2) Java ノード - メッセージを変換して処理します。

ビジネス ロジックを実装するための値を含む 1 つのプロパティ ファイルを作成しました。フローの実行中に、私の Java クラスはそのプロパティ ファイルを読み取ります。

そのため、現在の実装では、新しいメッセージが MQ に着信するたびに Java クラスがプロパティ ファイルをロードします。したがって、このように「n」個のメッセージがキューに入ると、フローはプロパティ ファイルを「n」回読み取ります。

しかし、フローの実行ごとではなく、フローをデプロイ/再起動するときに、プロパティファイルを一度だけ読み取る必要があります。

参考までに、私は自分のプロジェクトで春のフレームワークを使用していません。

4

1 に答える 1

0

Mule フローで次のように宣言できます。Spring Bean は必要ありません。

 <context:property-placeholder location="classpath:yourpropertFileName.properties"/>

サーバーの起動/再起動後に一度だけ読み取られます

アップデート

という名前のプロパティ ファイルがあり、そのyourpropertFileName.properties中に次のキーと値を定義したとします。

message1=This is message1 value
message2=This is message2 value

これで、次のように Mule Flow で使用できます:-

<logger message="${message1}" level="INFO" />
<logger message="${message2}" level="INFO" />

ご覧のとおり、プロパティ ファイルからキーと値を読み取り、それを Mule Config ファイルのロガーで使用しました。同様に、必要な任意の Mule コンポーネントでプロパティ ファイルのキーを使用できます。

更新:- プロパティ ファイルから値を読み取る Java クラスのサンプルを次に示します。要件に応じて変更できます:-

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;

    public class SampleJavaClass extends AbstractMessageTransformer {

        Properties prop = new Properties(); //Creating property file object read File attachment path from property file
        InputStream input = null; // To read property file path

        @Override
        public Object transformMessage(MuleMessage message, String outputEncoding)
                throws TransformerException {

             try {
                input = getClass().getResourceAsStream("yourpropertFileName.properties"); // Property file path in classpath
                 prop.load(input); // get and load the property file
                String msg1=prop.getProperty("message1");
                String msg2=prop.getProperty("message2");
                System.out.println("Key1 from Prop file "+msg1);
                System.out.println("Key2 from Prop file "+msg2);
            } catch (IOException e)
            {

                e.printStackTrace();
            }

              return message;
            }
        }
于 2014-10-31T08:30:56.690 に答える