自动装配到 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;注入自动装配的依赖项失败