Używanie Jackson Mixins z MappingJacksonHttpMessageConverter & Spring MVC

Natychmiast przejdę do mojego prawdziwego pytania / kwestiijest jakikolwiek sposób na dostęp do adnotacji w metodzie obsługi kontrolera wewnątrz HttpMessageConverter? Jestem pewien, że odpowiedź brzmi nie (po przejściu przez kod źródłowy Springa).

Czy jest jakiś inny sposób użyciaJackson Mixins sparowany podczas używaniaMapowanieJacksonHttpMessageConverter? Mam już zaimplementowany własny HttpMessageConverter oparty na MappingJacksonHttpMessageConverter, aby „zaktualizować” go do użycia w Jackson 2.0.

Controller.class

@Controller
public class Controller {

    @JsonFilter({ @JsonMixin(target=MyTargetObject.class, mixin=MyTargetMixin.class) })
    @RequestMapping(value="/my-rest/{id}/my-obj", method=RequestMethod.GET, produces="application/json")
    public @ResponseBody List<MyTargetObject> getListOfFoo(@PathVariable("id") Integer id) {
        return MyServiceImpl.getInstance().getBarObj(id).getFoos();
    }
}

@JsonFilter to niestandardowa adnotacja, którą chcę przekazać do programu odwzorowującego, która następnie może zostać automatycznie przekazana do obiektu ObjectMapper.

MapowanieJacksonHttpMessageConverter.class

public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConverter<Object> {

    ...

    @Override
    protected void writeInternal(Object object, HttpOutputMessage outputMessage) {

            //Obviously, no access to the HandlerMethod here.

    }

    ...
}

Szukałem daleko i szeroko tej odpowiedzi. Jak dotąd widziałem tylko ludzi serializujących swój obiekt w JSON wewnątrz metody obsługi kontrolera (naruszającZasada DRY wielokrotnie w każdej metodzie). Lub adnotacja ich obiektów danych bezpośrednio (bez oddzielenia lub wielu konfiguracji dotyczących sposobu odsłonięcia obiektów).

Być może nie można tego zrobić w HttpMessageConverter. Czy są inne opcje? Interceptory dają dostęp do HandlerMethod, ale nie do zwróconego obiektu metody handler.

questionAnswers(2)

yourAnswerToTheQuestion