Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring引导端点上使用自定义jackson映射器_Java_Spring_Spring Mvc_Spring Boot_Jackson - Fatal编程技术网

Java 在spring引导端点上使用自定义jackson映射器

Java 在spring引导端点上使用自定义jackson映射器,java,spring,spring-mvc,spring-boot,jackson,Java,Spring,Spring Mvc,Spring Boot,Jackson,我想在派生自AbstractEndpoints的端点上使用不同的jacksonObjectMapper实例(而不是在其他映射URL上使用的实例) 为了澄清这个问题,我不想更改或自定义对象映射器,它由不同的URL使用,而不是从AbstractEndpoints派生的URL(如HealtEndpoint,MetricsEndpoint)。我想专门将新的对象映射器注入管理端点。如果您想完全替换默认的对象映射器,请定义该类型的@Bean并将其标记为@Primary,或者,如果您更喜欢基于生成器的方法,请

我想在派生自AbstractEndpoints的端点上使用不同的jacksonObjectMapper实例(而不是在其他映射URL上使用的实例)


为了澄清这个问题,我不想更改或自定义对象映射器,它由不同的URL使用,而不是从AbstractEndpoints派生的URL(如HealtEndpointMetricsEndpoint)。我想专门将新的对象映射器注入管理端点。

如果您想完全替换默认的对象映射器,请定义该类型的@Bean并将其标记为@Primary,或者,如果您更喜欢基于生成器的方法,请定义Jackson2ObjectMapperBuilder@Bean。请注意,在任何一种情况下,这都将禁用“ObjectMapper”的所有自动配置

如果您提供MappingJackson2HttpMessageConverter类型的任何@Bean,那么它们将替换MVC配置中的默认值。此外,还提供了HttpMessageConverters类型的便利bean(如果使用默认MVC配置,则始终可用),它有一些有用的方法来访问默认和用户增强的消息转换器

您可以阅读文档中的完整主题:73.3自定义Jackson ObjectMapper


从Spring Boot 1.5开始,您可以自定义JMX端点使用的
ObjectMapper
,但不是您想要的方式。例如,您可以在中看到,它将
ObjectMapper
作为参数,但不包含任何参数。因此,它会自动使用默认的
ObjectMapper
,除了更改原始源或滚动自己的端点并添加必要的限定符之外,您无能为力


如果仍要使用Spring Boot提供的默认端点,请根据需要自定义默认的
ObjectMapper
,创建与原始配置匹配的第二个实例,并添加限定符以在自己的代码中使用第二个
ObjectMapper
。本文还讨论了这一问题

定义自定义
@Bean
对您不起作用吗?请参阅。欢迎使用堆栈溢出!请拿着,四处看看,仔细阅读,尤其是和。不幸的是,这并不能解决我的问题。当我在问题中添加一些额外信息时,我需要另一个对象映射器bean,专门用于从AbstractEndpoints派生的管理端点。