Spring Boot应用程序的任务是每隔几分钟更新一次远程集成API。此应用程序可以部署到测试或产品环境中,通过“application.properties”标志告知应用程序应该查看的结束点。 POJO正在与Jackson序列化并推送到端点,JsonProperty注释包含它被推送到的API的字段ID。使用Jackson的Spring Boot的条件JsonProperty
即
@JsonProperty("field_001)
private String name;
@JsonProperty("field_002)
private String address;
这些值的字段标签上的测试终点不同。所以测试端点可能期望的属性映射为
@JsonProperty("field_005)
private String name;
@JsonProperty("field_006)
private String address;
我希望能够利用的轮廓基础性文件的春天启动的原生支持。在运行时从外部属性文件中读取JsonProperty注释值。
因此,例如,
可能有三个文件application.properties,application-test.properties和application-prod.properties。 除了基于“spring.profiles.active”设置的vanilla属性文件外,Spring Boot还可以读取测试或prod属性。
...- test.properties将包含测试服务器字段的常量值。而...- prod.properties将包含prod服务器字段的常量值。
嵌套注释,比如Spring的@Value标签,就像这样:
@JsonProperty(@Value("${property.file.reference.here}))
似乎并没有工作。
是否可以使用序列化程序来指定POJO上只有几个字段的序列化?根据环境的不同,有近30个字段不会改变。理想情况下,序列化程序可以包含序列化服务器特定字段所需的逻辑,但让POJO上的@JsonProperty值处理其余部分。 – AldousP
我对此表示怀疑,但我会指出我并不确定。 –