Configuration Mulesoft-将JSON或XML属性文件加载到全局变量中
我试图将一个相对简单的配置文件加载到一个变量中,我可以通过MEL全局访问该变量。我不想使用典型的属性字段,因为我的结构不是扁平的 我可以通过如下方式将文件作为bean加载,但这给我留下了一个巨大的字符串,而不是hashmap(我知道为什么,我只是不知道如何修复它):Configuration Mulesoft-将JSON或XML属性文件加载到全局变量中,configuration,mule,anypoint-studio,Configuration,Mule,Anypoint Studio,我试图将一个相对简单的配置文件加载到一个变量中,我可以通过MEL全局访问该变量。我不想使用典型的属性字段,因为我的结构不是扁平的 我可以通过如下方式将文件作为bean加载,但这给我留下了一个巨大的字符串,而不是hashmap(我知道为什么,我只是不知道如何修复它): 关于适当或更好的方法的想法?以下是解决方案 类文件: package com.example; import java.io.File; import java.util.HashMap; import java.util.M
关于适当或更好的方法的想法?以下是解决方案
类文件:
package com.example;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class JSONUtil {
File in;
public File getIn() {
return in;
}
public void setIn(File in) {
this.in = in;
}
public Map<String, Object> getConfigAsMap(){
try{
ObjectMapper mapper = new ObjectMapper();
TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};
Map<String, Object> map = mapper.readValue( in, typeRef);
System.out.println(map);
return map;
} catch(Exception exception){
exception.printStackTrace();
return null;
}
}
}
package.com.example;
导入java.io.File;
导入java.util.HashMap;
导入java.util.Map;
导入org.codehaus.jackson.map.ObjectMapper;
导入org.codehaus.jackson.type.TypeReference;
公共类JSONUtil{
归档;
公共文件getIn(){
返回;
}
公共void设置入(文件入){
this.in=in;
}
公共映射getConfigAsMap(){
试一试{
ObjectMapper mapper=新的ObjectMapper();
TypeReference typeRef=新的TypeReference(){};
Map Map=mapper.readValue(in,typeRef);
系统输出打印项次(map);
返回图;
}捕获(异常){
异常。printStackTrace();
返回null;
}
}
}
配置:
<spring:bean id="JSONUtil" class="com.example.JSONUtil" >
<spring:property name="in" value="classpath:client-configuration.json"/>
</spring:bean>
<spring:bean name="ClientConfiguration" factory-bean="JSONUtil" factory-method="getConfigAsMap" />
这正在工作,JSON配置作为映射加载。以下是解决方案
类文件:
package com.example;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class JSONUtil {
File in;
public File getIn() {
return in;
}
public void setIn(File in) {
this.in = in;
}
public Map<String, Object> getConfigAsMap(){
try{
ObjectMapper mapper = new ObjectMapper();
TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};
Map<String, Object> map = mapper.readValue( in, typeRef);
System.out.println(map);
return map;
} catch(Exception exception){
exception.printStackTrace();
return null;
}
}
}
package.com.example;
导入java.io.File;
导入java.util.HashMap;
导入java.util.Map;
导入org.codehaus.jackson.map.ObjectMapper;
导入org.codehaus.jackson.type.TypeReference;
公共类JSONUtil{
归档;
公共文件getIn(){
返回;
}
公共void设置入(文件入){
this.in=in;
}
公共映射getConfigAsMap(){
试一试{
ObjectMapper mapper=新的ObjectMapper();
TypeReference typeRef=新的TypeReference(){};
Map Map=mapper.readValue(in,typeRef);
系统输出打印项次(map);
返回图;
}捕获(异常){
异常。printStackTrace();
返回null;
}
}
}
配置:
<spring:bean id="JSONUtil" class="com.example.JSONUtil" >
<spring:property name="in" value="classpath:client-configuration.json"/>
</spring:bean>
<spring:bean name="ClientConfiguration" factory-bean="JSONUtil" factory-method="getConfigAsMap" />
这正在工作,JSON配置作为映射加载。那么您想在来自外部文件的上下文中使用哈希映射吗?是的,基本上。那么您想在来自外部文件的上下文中使用哈希映射吗?是的,基本上。