Почему мне не нужен http2MessageConverter в моем сервлете диспетчера - PullRequest
0 голосов
/ 01 мая 2018

Я пишу спокойный сервис, возвращающий объекты в моем контроллере, мой диспетчер выглядит так

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>rest</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>rest</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

мой контроллер выглядит так

@RequestMapping(method = RequestMethod.GET, value = "/{bookmarkId}")
    Bookmark readBookmark(@PathVariable String userId, @PathVariable Long bookmarkId) {
        this.validateUser(userId);
        return this.bookmarkRepository.findOne(bookmarkId);
    }

у меня в помпе

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.5</version>
</dependency>

Мой вопрос заключается в том, как он преобразует мой объект в json, когда я не настроил какой-либо конвертер Http2message, я понимаю, что http2messageconverter требует быстрее xml в моем pom для конвертации объектов в json, так почему он работает без явной настройки моего jsonconverter

1 Ответ

0 голосов
/ 02 мая 2018

Это связано с тем, что по умолчанию весной по умолчанию, когда вы включаете веб-mvc с помощью xml или с помощью аннотации, пружина предварительно включает некоторые конвертеры сообщений, как указано ниже, и вы также можете предоставить библиотеку для другого конвертера, если это необходимо для предпочтения

ByteArrayHttpMessageConverter – converts byte arrays
StringHttpMessageConverter – converts Strings
ResourceHttpMessageConverter – converts org.springframework.core.io.Resource for any type of octet stream
SourceHttpMessageConverter – converts javax.xml.transform.Source
FormHttpMessageConverter – converts form data to/from a MultiValueMap<String, String>.
Jaxb2RootElementHttpMessageConverter – converts Java objects to/from XML (added only if JAXB2 is present on the classpath)
MappingJackson2HttpMessageConverter – converts JSON (added only if Jackson 2 is present on the classpath)
MappingJacksonHttpMessageConverter – converts JSON (added only if Jackson is present on the classpath)
AtomFeedHttpMessageConverter – converts Atom feeds (added only if Rome is present on the classpath)
RssChannelHttpMessageConverter – converts RSS feeds (added only if Rome is present on the classpath)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...