自动装配到 JPA 转换器中

Posted

技术标签:

【中文标题】自动装配到 JPA 转换器中【英文标题】:Autowiring into JPA converters 【发布时间】: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 做到这一点?

【问题讨论】:

这是***.com/questions/47219421/… 的副本,其中包含更多详细信息。 【参考方案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 方法,但仍处于问题状态... :-( 它也对我有用,但我无法理解如何,请您解释一下。 为什么字段需要是静态的?请解释

以上是关于自动装配到 JPA 转换器中的主要内容,如果未能解决你的问题,请参考以下文章

@Primary 等效于自动装配的 Spring JPA 存储库

使用 Spring Boot 自动装配具有 jpa 和非 jpa 特征的多个数据源

关于 JPA 存储库和自动装配的 Java spring 问题

尽管有 @EnableJpaRepositories 注释,但 Spring JPA 未实现/自动装配存储库

在 Spring Boot 应用程序的 JUnit 测试中,自动装配的 JPA 存储库没有合格的 bean

Spring data jpa-未定义名为“entityManagerFactory”的bean;注入自动装配的依赖项失败