java - 自定义 Jackson 转换器不受 Spring 管理
问题描述
我正在尝试构建一个具有自动装配依赖项的自定义 Jackson 反序列化转换器。我正在使用 Spring boot 2.1.2 以及 Lovelace-SR3 发布系列中的 Spring Data Rest。重现该问题的最小示例应用程序是:
DemoApplication.java
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
配置文件
@Configuration
public class Config {
@Bean("CurrentDate")
public Date currentDate() {
return new Date();
}
}
TestModelConverter.java
public class TestModelConverter extends StdConverter<TestModel, TestModel> {
@Autowired
@Qualifier("CurrentDate")
private Date now;
@Override
public TestModel convert(TestModel value) {
value.setNow(now);
return value;
}
}
测试模型.java
@Data
@Entity
@JsonDeserialize(converter = TestModelConverter.class)
public class TestModel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String text;
private Date now;
}
TestModelRepo.java
public interface TestModelRepo extends PagingAndSortingRepository<TestModel, Long> { }
在反序列化一个新的Testmodel
时,我希望now
自动装配以用于反序列化过程。我读到的所有内容都指向默认使用的SpringHandlerInstantiator并TestModelConverter
在 spring 上下文中构建,从而允许自动装配依赖项。
情况似乎并非如此。自动装配的依赖项似乎总是null
解决方案
推荐阅读
- java - @Async 指定的执行器是否适用于 CompletableFuture.supplyAsync(supplier)?
- php - 如果数据库中的值等于字符串,则将数组添加到嵌套 JSON
- python - 如何将分类时间序列数据输入 LSTM
- kotlin - Kotlin 中用作度量单位的内联类的常用方法和运算符
- c# - 快速操作:字段类生成器
- ruby-on-rails - Rails 嵌套查询
- python - Django 等价于 SQLAlchemy ORM 事件
- android - gms:play-services-ads:17.1.1 给出错误所有 com.google.android.gms 库必须使用完全相同的版本规范
- javascript - 如何使 Vue.js 中的值成为非响应式的?
- python - 无法找到两列不同熊猫数据集之间的相关性