Я пишу спокойную службу, возвращающую объекты в моем контроллере, мой диспетчер выглядит так
<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, когда я не настроил какой-либо Http2messageconverter, я понимаю, что http2messageconverter требует более быстрого xml в моем pom в другом для преобразования объектов в json, так почему он работает без явной конфигурации моего jsonconverter
Это связано с тем, что весной по умолчанию, когда вы включаете веб-mvc либо с помощью xml, либо с помощью аннотации, spring pre включает некоторые преобразователи сообщений, как указано ниже, и вы также можете предоставить библиотеку для другого преобразователя, если необходимо,
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)