你可以在你的 Mule 流程中声明以下内容,并且你不需要 Spring bean:-
<context:property-placeholder location="classpath:yourpropertFileName.properties"/>
在服务器启动/重启后它只会被读取一次
更新
假设您有一个名为 as 的属性文件,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 配置文件的记录器中使用了它。同样,你可以在任何你想要的 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;
}
}