首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SpringBoot2.1.4:@Autowired在定制的Jackson序列化/反序列化程序中不工作,如何启用它?

SpringBoot2.1.4:@Autowired在定制的Jackson序列化/反序列化程序中不工作,如何启用它?
EN

Stack Overflow用户
提问于 2020-06-03 14:43:59
回答 1查看 359关注 0票数 2

我正在努力地将Spring组件@Autowired引入我的自定义反序列化器。

示例:

代码语言:javascript
运行
复制
@JsonDeserialize (using = SomeClassJsonDeserializer.class)
SomeClass {
[...]
}

@JsonComponent
SomeClassJsonDeserializer extends JsonDeserializer<SomeClass> {

@Autowired
private SomeService service;

  @Override
      public SomeClass deserialize(JsonParser jsonParser,
              DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
     [...]
     // this.service is null
  }

}

我发现了两种可能的解决方案,但对我来说根本行不通:

在Deserializer

  • use HandlerInstantiator的默认构造函数中,
  • 使用SpringBeanAutowiringSupport (通过配置/自定义
  • )

我只使用上面示例中显示的那些Jackson注释来“配置”Jackson解析。除了默认的SpringBoot自动配置之外,没有任何其他自定义配置影响到Jackson。当使用@EnableWebMvc (破坏了Spring的自动配置,所以我不想使用它)时,组件连接就会像预期的那样工作。

对于带有默认自动配置的普通Spring,有任何官方/推荐的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 12:48:48

问题在于我如何使用Spring的RestTemplate。

对于远程调用,我通过构造器调用(新的RestTemplate())创建了一个新的RestTemplate实例。通过这种方式,Spring无法正确地配置RestTemplate - bean (这样,SpringBoot自动配置和SpringBoot自动配置'connect‘在一起,从而导致Spring在定制的Jackson组件中工作)。

我只需@Autowire提供的RestTemplateBuilder bean实例,然后调用RestTemplateBuilder.build()来创建由RestTemplate创建的RestTemplate bean实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62175727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档