2016-04-26 66 views
3

我在我的spring启动应用程序中使用自定义的ObjectMapper。我还使用JPA转换器来处理在数据库中存储为JSON字符串的几个字段。我不知道如何将自定义对象映射器自动装入我的转换器。自动装入JPA转换器

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

而且我AddressConverter是

class AddressConverter implements AttributeConverter<Address, String> { 

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

如何自动装配ObjectMapperAddressConverter?有没有办法用Spring AOP来做到这一点?

回答

6

也许你可以通过这样的静态属性做到这一点:

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

    private static ObjectMapper objectMapper; 

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

}

+0

这确实为我工作。虽然我还必须添加注解'@ Converter'并确保Converter在其他地方自动装配,以便Spring实际初始化它。 – n0daft

+0

我试过了,它不起作用。也尝试n0daft的建议,但该字段始终为空。 –

+0

我也遇到了Spring Data JPA项目的麻烦,我发现那里应该有某种override的转换器.add方法,但仍处于问题状态...... :-( – kensai