Java 如何控制是否应基于活动配置文件使用Spring Boot序列化字段
我一直在寻找一种方法,能够在SpringBoot中使用自定义注释对我的响应模型进行注释,以控制应该使用SpringProfiles和Jackson序列化哪个字段 我知道有一个现有的注释JsonView来定义不同的视图,但这需要逻辑来处理每个模型的独立视图,而och支持这些视图 我宁愿使用一个自定义注释,该注释将获取一个(列表)概要文件,以排除/包括字段 我还考虑编写一个序列化程序,但它只控制值,而不控制整个属性,包括名称 这在某种程度上是可能的吗Java 如何控制是否应基于活动配置文件使用Spring Boot序列化字段,java,spring,spring-boot,jackson,Java,Spring,Spring Boot,Jackson,我一直在寻找一种方法,能够在SpringBoot中使用自定义注释对我的响应模型进行注释,以控制应该使用SpringProfiles和Jackson序列化哪个字段 我知道有一个现有的注释JsonView来定义不同的视图,但这需要逻辑来处理每个模型的独立视图,而och支持这些视图 我宁愿使用一个自定义注释,该注释将获取一个(列表)概要文件,以排除/包括字段 我还考虑编写一个序列化程序,但它只控制值,而不控制整个属性,包括名称 这在某种程度上是可能的吗 class Response { va
class Response {
var message: String
@JsonExclude("production")
var debugMessage: String? = null
}
我建议你在更高的层次上工作 我想您的响应正在被一个Web服务序列化。也许您可以使用一个实现来发送带有@JsonExclude的响应,而另一个实现不带@JsonExclude 您可以使用@Profile注释启用所需的Web服务
@RestController
@Profile("withExclude")
class WithExcludeController : IMyController {
fun process() : ResponseWithExclude {
// ...
}
}
@RestController
@Profile("withoutExclude")
class WithoutExcludeController : IMyController {
fun process() : ResponseWithoutExclude {
// ...
}
}
如果在多个Web服务/端点中重复使用我的任何模型,那不需要我用一个激活配置文件复制所有这些模型吗?每个激活配置文件似乎都有很多额外的代码?