【问题标题】:Autowiring into JPA converters自动装配到 JPA 转换器中
【发布时间】:2016-08-19 17:58:23
【问题描述】:

我在我的 Spring Boot 应用程序中使用了自定义的 ObjectMapper。我还将 JPA 转换器用于在数据库中存储为 JSON 字符串的几个字段。我不确定如何将我的自定义对象映射器自动连接到我的转换器中。

@Convert(converter=AddressConverter.class)
private Address address;

我的 AddressConverter 是

class AddressConverter implements AttributeConverter<Address, String> {

        @Autowire
        ObjectMapper objectMapper; //How to do this?
        .....
        .....
   }

如何将ObjectMapper 自动连接到AddressConverter?有没有办法用 Spring AOP 做到这一点?

【问题讨论】:

标签: spring jpa spring-boot jackson spring-data-jpa


【解决方案1】:

也许您可以通过将其更改为 static 属性来做到这一点,如下所示:

@Component
class AddressConverter implements AttributeConverter<Address, String> {

    private static ObjectMapper objectMapper; 

    @Autowired
    public void setObjectMapper(ObjectMapper objectMapper){
        AddressConverter.objectMapper = objectMapper;
    }
    .....
    .....
}

【讨论】:

  • 这对我有用。虽然我还必须添加注释 @Converter 并确保转换器在其他地方自动连接,以便 spring 实际初始化它。
  • 我试过了,但它不起作用。也尝试了 n0daft 的建议,但该字段始终为空。
  • 我也遇到了 Spring Data JPA 项目的问题,我发现应该有某种覆盖 converters.add 方法,但仍处于问题状态... :-(
  • 它也对我有用,但我无法理解如何,请您解释一下。
  • 为什么字段需要是静态的?请解释
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
相关资源
最近更新 更多