我想以某種方式注入到Spring的MVC註冊的所有HttpMessageConverter
實例。我可以成功注入所有已註冊的通過。有沒有辦法讓所有註冊的消息轉換器?
private HttpMessageConverter[] converters;
@Autowired
public void setConverters(HttpMessageConverter[] converters) {
this.converters = converters;
}
但是,如果轉換器是在上下文中註冊此僅注入(即,如果的<annotation-driven>
外面所定義的)。
我做了圖我會嘗試在<annotation-driven><message-converters>
內使用<beans:ref
,但它在spring-web 3.1中不支持。
有一些I類可以注入,可能有一個屬性,我可以用它來獲取轉換器?理想情況下,我希望看到它們在過濾器鏈中的訂單。
啊,你一直是最優秀的。 RequestMappingHandlerAdapter提示已經告訴我我需要知道的一切。我現在可以'@ Autowire'一個'RequestMappingHandlerAdapter'實例並調用它的'getMessageConverters()'方法,這將返回一個數組,該數組似乎是按照已註冊的順序排列的。 FWIW我不想對此進行修改,我只是想報告哪些轉換器已註冊並按照哪個順序。信息 – 2012-08-15 14:52:12
一個額外的位,我打電話getMessageConverters()在我的@Autowire構造。那時,所有的消息轉換器都沒有被註冊。對我而言,在我需要使用getMessageConverters()之前調用getMessageConverters()。 – ptsw 2014-12-27 19:45:29