我正在从json文件加载属性,并在Spring Boot应用程序中创建数据源构建器。但是,当我尝试将值更新为json文件时,出现错误 [无法构造java.util.LinkedHashMap
的实例(尽管至少存在一个Creator):没有用于反序列化的String-argument构造函数/工厂方法来自字符串值] 。请找到下面的代码,并在此帮助我。
我已经为类使用“ PropertySource”注释从json加载数据。我正在尝试使用ObjectMapper将这些值更新为json文件。
@Configuration
@PropertySource(value = "classpath:/config/database_config.json", factory = JsonPropertySourceFactory.class)
@ConfigurationProperties
public class JsonProperties {
private String ip;
private String port;
//getters and setters
}
public class JsonPropertySourceFactory implements PropertySourceFactory {
@SuppressWarnings("unchecked")
@Override
public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
@SuppressWarnings("rawtypes")
Map readValue = new ObjectMapper().readValue(resource.getInputStream(), Map.class);
return new MapPropertySource("json-property", readValue);
}
}
{
"ip": "1.1.1.1",
"port": "3306",
}
ObjectMapper mapper = new ObjectMapper();
try {
mapper.writeValue(new ClassPathResource("configuration/database_config.json").getFile(), dataBaseJsonProperties);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我正在尝试更新json文件中的数据库信息,并通过再次查看json文件来检查数据库来重新启动应用程序。