Ich arbeite an einem Spring WebMvc (nicht Spring Boot) -Projekt, das Pure-Java-Konfiguration zum Einrichten seiner Beans verwendet. Ich habe Schwierigkeiten, Spring/Jackson dazu zu bringen, die Annotation @DateTimeFormat mit java.time (jsr310) -Objekten wie LocalDateTime zu berücksichtigen.Spring DateTimeFormat Konfiguration für java.time
Ich habe sowohl jackson-datentyp-jsr310 und jackson-databind jars (Version 2.7.4) auf dem Klassenpfad, zusammen mit den entsprechenden Sprungfedern für eine grundlegende webmvc-Anwendung spring-context und spring-webmvc (Version 4.3.0 .RELEASE)
Hier ist meine relevante Konfigurationsklasse:
@Configuration
@ComponentScan({"com.example.myapp"})
public class WebAppConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ObjectMapper mapper = Jackson2ObjectMapperBuilder
.json()
.indentOutput(true)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.findModulesViaServiceLoader(true)
.build();
converters.add(new MappingJackson2HttpMessageConverter(mapper));
super.addDefaultHttpMessageConverters(converters);
}
}
ich das getestet habe mit meinen Datenmodellen über einen Rest Controller Serialisierung. Scheint, dass Jackson @ JsonFormat respektiert, aber @DateTimeFormat vollständig ignoriert.
Welche zusätzliche Konfiguration fehlt mir, um Spring/Jackson zu bekommen, @DateTimeFormat zu respektieren? Gibt es irgendwelche wesentlichen Unterschiede zwischen den beiden Anmerkungen, die ich beachten sollte, Probleme, denen ich nur mit @JsonFormat begegnen könnte?
glaube, ich war meistens verwirrt (korrigiert mich wenn ich falsch liege) an Beispielen online seit suchen, bedeutet, dass es Szenarien, in denen ich möglicherweise brauchen könnte beide Annotationen für Java-Zeiteigenschaften verwenden Zum Beispiel, wenn ich eine Bohne sowohl durch Pause (mit Jackson) als auch als eine federformatierte Zeichenfolge auf einer JSP-Seite verfügbar machen wollte. – Alex
Korrigieren Sie @Alex, Sie müssen möglicherweise beide verwenden. – ck1