如何为嵌套的对象列表配置spring配置元数据json?
脚本
@ConfigurationProperties(prefix = "custom-config")
public class ConfigProperties {
private boolean booleanProperty;
private List<nestedobject> listProperty = new LinkedList<>();
//getters and setters
}
public class nestedobject {
private String stringProperty;
private boolean booleanProperty;
//getters and setters
}
{
"groups": [{
"name": "custom-config","type": "testing.config.properties.ConfigProperties","sourceType": "testing.config.properties.ConfigProperties"
}],"properties": [
{
"name": "custom-config.boolean-property","type": "java.lang.Boolean","sourceType": "testing.config.properties.ConfigProperties","defaultValue": false
},{
"name": "custom-config.list-property","type": "java.util.Listfig.properties.nestedobject>","sourceType": "testing.config.properties.ConfigProperties"
}
],"hints": []
}
如下所示,编辑器无法识别子属性.
最佳答案
对于您的问题:“如何在java代码或json中配置子属性?”
答案很长:
见https://github.com/spring-projects/spring-boot/wiki/IDE-binding-features#simple-pojo
特别是,请查看“简单Pojo”和“Wrapping Up”部分.
简答:
你已尽力而为. IDE具有所需的所有信息. nestedobject的属性可以通过基于输出第16行给出的信息的反射来确定:
"type": "java.util.Listfig.properties.nestedobject>"
IDE将获得列表能够接受的类. IDE应使用类名来推断nestedobject上的可用属性.但是,在撰写本文时,并非所有IDE都完全反映了属性和YAML格式的嵌套类.
IntelliJ似乎反映了属性文件中列表的值类型,但它没有反映到地图值类型中.它根本不反映YAML文件的列表或映射值.我不确定Spring Tool Suite,但上次检查时,它对自动完成的支持也缺少这些功能.
如果您是IntelliJ用户,我建议对这两个问题进行投票,以便支持对集合类型的完全支持:
> https://youtrack.jetbrains.com/issue/IDEA-151708
> https://youtrack.jetbrains.com/issue/IDEA-159276
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。