2017-11-22 7 views
0

@RestController注釈& jackson2を使用しますが、応答JSON(java.util.Dateを含む)は常にタイムスタンプを返しますが、 ...Spring 4、カスタムmessageConverterは動作しません

<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... 

デバッグのみdefualt 5 MessageConvertersがある見つける... the screenshoot

+0

MappingJackson2HttpMessageConverterは4番目のMessageConverterとして登録されています。期待どおりにCustomObjectMapperを参照しているかどうかを確認してください。 –

+0

いいえ。確認しました。日付形式設定がデフォルト値です。 'しかし、CustomObjectMappersのコンストラクタが初期化中に呼び出されたため、おそらく私は複数のInitializingBeanを使用していて、元の設定やその他の理由をカバーしていると思います... ..........私はちょっと考えていない! –

答えて

0

これは、アノテーションを使用して行う方法です。

@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

XML設定でcustomObjectMapperを追加しました。 –

関連する問題