Custom Jackson Converter не управляется Spring - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать пользовательский конвертер десериализации Джексона с автосвязной зависимостью. Я использую 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

...