2017-11-22 3 views
0

Ich möchte @RestController Annotation & jackson2 verwenden, aber die Antwort JSON (java.util.Date enthalten) immer Timestamp zurück, habe ich die folgenden Dinge, aber es funktioniert nicht ...Spring 4, der benutzerdefinierte messageConverter funktioniert nicht

<mvc:annotation-driven> 
    <mvc:message-converters register-defaults="true"> 
     <bean id="customJsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
      <property name="objectMapper" ref="customObjectMapper"/> 
     </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 



public class CustomObjectMapper extends ObjectMapper{ 


public CustomObjectMapper(){ 
    this.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    this.setDateFormat(df); 
} 

}

@RestController 
@RequestMapping(value = "/reports") 
public class ReportController extends... 

Debug- und finden dort nur defualt 5 MessageConverters ist ... the screenshoot

+0

MappingJackson2HttpMessageConverter ist als vierter MessageConverter registriert. Überprüfen Sie, ob es Ihren CustomObjectMapper wie erwartet referenziert. –

+0

Nein. Ich habe überprüft. Die Dateformat-Konfiguration ist der Standardwert. 'Aber der CustomObjectMappers-Konstruktor wurde während der Initialisierung aufgerufen', also nehme ich an, dass ich wahrscheinlich mehr als eine InitializingBean verwendet habe und die ursprüngliche Konfiguration oder andere Gründe .......... .Ich habe nur keine Ahnung! –

Antwort

0

So können Sie das mithilfe von Anmerkungen tun:

@Configuration 
public class JacksonConfiguration extends WebMvcConfigurerAdapter { 

    private final CustomObjectMapper mapper; 

    @Autowired 
    public JacksonConfiguration(CustomObjectMapper mapper) { 
     this.mapper = mapper; 
    } 

    @Override 
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 
     converters.add(new MappingJackson2HttpMessageConverter(mapper)); 
    } 
} 
+0

Ich habe den CustomObjectMapper mit der XML-Konfiguration hinzugefügt. –

Verwandte Themen