将服务注入自定义的Jackson序列化器

浪费

嗨,我在以下情况下有问题:

我正在将Spring 4.xx与Jackson 2.xx结合使用,并且我正在使用RESTful Web应用程序。我现在面临一个问题,我需要为其中一个模型进行一些自定义序列化,因此我使用了自定义序列化器,但是在序列化时我还需要从数据库中获取一些数据。因此,我尝试将我的Serivce注入到Serializer中,但它始终保持为空。

据我所读,如果您直接实例化对象,就会发生这种情况,我猜这就是杰克逊所做的。但是,有什么方法仍然可以使用依赖注入吗?

另外,如果我让该类实现ApplicationContextAware接口并调用ApplicationContext#getBean(),它将永远挂起。

这是一些代码来说明我的问题

Serialzer.java

public class TheSerializer extends JsonSerializer<MyObject>
  implements ApplicationContextAware {

  @Autowired
  ITheService theService;

  ApplicationContext ctx;

  public vodi serialize(MyObject o, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
    if(theService == null) {
      theService = ctx.getBean(ITheService.class); //This is where it hangs
      //If I don't do this I get a NPE if I try to use theSerivice
    }
  }
}

我的配置主要基于注释,只有databse内容是在xml中完成的。

先感谢您,

浪费

伊利亚·奥维斯诺夫(Ilya Ovesnov)

您可以使用@Configurable spring批注将spring bean注入非spring bean。

有关如何执行操作的一些说明:http : //www.kubrynski.com/2013/09/injecting-spring-dependencies-into-non.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自定义序列化器和Jackson模式

Jackson 的多态序列化/反序列化和自定义序列化器/反序列化器

将字符串值传递给Java中的Jackson自定义反序列化器

使用自定义反序列化器 Jackson 将 .json 文件转换为 Java 对象

使用Jackson进行自定义反序列化:扩展默认反序列化器

使用Jackson序列化自定义地图

用于Optional <?>的Jackson自定义序列化程序

某些字段的Jackson JSON自定义序列化

使用Jackson自定义JSON反序列化

使用Jackson自定义Collection <T>的序列化

Jackson对多态对象的自定义反序列化

使用Jackson自定义反序列化列表

如何为Jackson编写自定义JSON反序列化器?

编写多个自定义 Jackson 反序列化器来处理继承的正确方法

Scala jackson - 自定义反序列化器不兼容类型

如何为自定义Jackson序列化器编写JUnit-Test?

Jackson-更改映射密钥名称而无需自定义序列化器

当值为“ null”时,Jackson忽略自定义字段反序列化器

在特定字段上自定义Jackson序列化器

Spring Jackson 自定义反序列化器未调用

向 Jackson 反序列化器添加自定义参数

使用Jackson的自定义JSON序列化/反序列化

Jackson 不会使用自定义序列化程序序列化 null

用于自定义NULL值序列化的Jackson自定义批注

设计器序列化自定义结构

Spring Kafka自定义反序列化器

自定义BSON键值序列化器

自定义Angular $ http序列化器

实现复杂的自定义结构序列化器