Я пытаюсь создать пользовательский конвертер десериализации Джексона с автосвязной зависимостью. Я использую Spring boot 2.1.2 вместе с Spring Data Rest из выпуска релиза Lovelace-SR3. Минимальный пример приложения, которое воспроизводит проблему:
DemoApplication.java
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Config.java
@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;
}
}
TestModel.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
в контексте пружины, что позволяет автоматически связывать зависимости.
Кажется, это не так. Автозависимости всегда кажутся null