spring 自动装配到JPA转换器

vdzxcuhz  于 2023-09-29  发布在  Spring
关注(0)|答案(2)|浏览(134)

我在我的Sping Boot 应用程序中使用定制的ObjectMapper。我还使用JPA转换器将几个字段作为JSON字符串存储在DB中。我不知道如何将自定义对象Map器自动连接到转换器。

@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做到这一点?

ct2axkht

ct2axkht1#

也许你可以通过将其更改为static属性来实现,如下所示:

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

    private static ObjectMapper objectMapper; 

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

qojgxg4l2#

使用@Component注解转换器,然后Spring将通过调用转换器的构造函数来创建它的示例。
构造函数将自动连接依赖项,然后您可以将其保存为静态字段变量。
当JPA创建this示例时,它不会像Spring那样传递依赖项,但是因为JPA示例的static字段在Spring创建另一个示例时已经设置,所以依赖项确实有效

相关问题