我开发了一个新的连接器。这个连接器需要配置两个参数,比如说:
挑战是,我想从 API 读取 ${myValue_a} 和 ${myValue_a},使用 HTTP 调用,而不是从文件或内联值。
由于这是一个连接器,我需要在连接器初始化之前在某处调用这个 API。
FlowVars 不是一个选项,因为它们是用 Flows 初始化的,这在 Mule 应用程序生命周期之前发生过。
我的想法是创建一个实现Initialisable的 Spring Bean ,所以它会在连接器初始化之前被调用,在这里,使用任何基于 Java 的库(Spring RestTemplate?),调用 API,获取值,并将它们存储在某个地方(上下文?objectStore? ) ,因此连接器可以访问它们。
有道理?还有其他想法吗?
谢谢!
嗯,您可以创建一个类,该类将在启动时创建属性,并在该类中通过 http 请求获取 API 属性。下面的例子:
public class PropertyInit implements InitializingBean,FactoryBean {
private Properties props = new Properties();
@Override
public Object getObject() throws Exception {
return props;
}
@Override
public Class getObjectType() {
return Properties.class;
}
}
现在你应该能够加载这个属性类:
<context:property-placeholder properties-ref="propertyInit"/>
希望你喜欢这个主意。我在以前的项目中使用了这种方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句