我正在研究mule flow,我需要读取一个属性文件,该文件将包含多个组织的FTP端点。每当流程开始时,它应该迭代属性文件并开始使用来自不同FTP端点的数据。 示例属性文件:
organizations:
OrgA:
FTPEndpoint: sftp://{orgAUser}:{password}@{hostA}:22/incoming/test
OrgB:
FTPEndpoint: sftp://{orgBUser}:{password}@{hostB}:22/incoming/test
我想了解如何迭代yaml属性文件?一些代码片段将不胜感激。 另外,我在mulesoft文档中读到你不能在foreach循环中放入入站端点。如果是这种情况,那么我们如何实现这一目标呢?
谢谢&问候, Vikas Gite
答案 0 :(得分:1)
我想了解如何迭代yaml属性文件
阅读配置文件(yaml):
<context:property-placeholder properties-ref="myConfig" />
<spring:beans>
<spring:bean id="myConfig" class="org.springframework.beans.factory.config.YamlPropertiesFactoryBean">
<spring:property name="resources" value="classpath:config.yaml"/>
</spring:bean>
</spring:beans>
这里是一个Java组件,它迭代条目:
public class ConfigExample implements Initialisable {
private Properties props;
@Override
public void initialise() throws InitialisationException {
props.entrySet().forEach(entry -> {
// do what ever you want with configuration entries.
// for example System.out.println :)
System.out.println(entry.getKey() + ": " + entry.getValue());
});
}
public Properties getProps() {
return props;
}
public void setProps(Properties props) {
this.props = props;
}
}
在myConfig
中注入ConfigExample
:
<spring:beans>
<spring:bean class="ConfigExample">
<spring:property name="props" ref="myConfig" />
</spring:bean>
</spring:beans>
另外,我在mulesoft文档中读到你不能在foreach循环中放入入站端点。如果是这种情况,那么我们如何实现这一目标呢?
这是正确的,您将无法迭代入站端点,但您可以使用入站端点创建流并根据您的配置启动它们。 Here Faraz Masood描述了如何做到这一点。