* BAEL-1216: improve tests * BAEL-1448: Update Spring 5 articles to use the release version * Setting up the Maven Wrapper on a maven project * Add Maven Wrapper on spring-boot module * simple add * BAEL-976: Update spring version * BAEL-1273: Display RSS feed with spring mvc (AbstractRssFeedView) * Move RSS feed with Spring MVC from spring-boot to spring-mvc-simple * BAEL-1285: Update Jackson articles * BAEL-1273: implement both MVC and Rest approach to serve RSS content * RSS(XML & Json) with a custom model * BAEL-1273: remove a resource * BAEL-1519: Guide to scribejava * BAEL-1273: improve xml representation * Fix pom
77 lines
3.5 KiB
Java
77 lines
3.5 KiB
Java
package com.baeldung.spring.configuration;
|
|
|
|
import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver;
|
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
|
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.ComponentScan;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.http.converter.HttpMessageConverter;
|
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
|
import org.springframework.http.converter.feed.RssChannelHttpMessageConverter;
|
|
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
|
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
|
|
import org.springframework.web.accept.ContentNegotiationManager;
|
|
import org.springframework.web.multipart.MultipartResolver;
|
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import org.springframework.web.servlet.ViewResolver;
|
|
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
|
|
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
|
|
import org.springframework.web.servlet.view.InternalResourceViewResolver;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Configuration
|
|
@EnableWebMvc
|
|
@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator" })
|
|
class ApplicationConfiguration extends WebMvcConfigurerAdapter {
|
|
|
|
@Override
|
|
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
|
|
configurer.enable();
|
|
}
|
|
|
|
@Bean
|
|
public ContentNegotiatingViewResolver viewResolver(ContentNegotiationManager cnManager) {
|
|
ContentNegotiatingViewResolver cnvResolver = new ContentNegotiatingViewResolver();
|
|
cnvResolver.setContentNegotiationManager(cnManager);
|
|
List<ViewResolver> resolvers = new ArrayList<>();
|
|
|
|
InternalResourceViewResolver bean = new InternalResourceViewResolver("/WEB-INF/views/",".jsp");
|
|
ArticleRssFeedViewResolver articleRssFeedViewResolver = new ArticleRssFeedViewResolver();
|
|
|
|
resolvers.add(bean);
|
|
resolvers.add(articleRssFeedViewResolver);
|
|
|
|
cnvResolver.setViewResolvers(resolvers);
|
|
return cnvResolver;
|
|
}
|
|
|
|
@Bean
|
|
public MultipartResolver multipartResolver() {
|
|
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
|
|
multipartResolver.setMaxUploadSize(5242880);
|
|
return multipartResolver;
|
|
}
|
|
|
|
@Override
|
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
|
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
|
|
builder.indentOutput(true);
|
|
|
|
XmlMapper xmlMapper = builder.createXmlMapper(true).build();
|
|
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
|
|
|
|
converters.add(new StringHttpMessageConverter());
|
|
converters.add(new RssChannelHttpMessageConverter());
|
|
converters.add(new MappingJackson2HttpMessageConverter());
|
|
converters.add(new MappingJackson2XmlHttpMessageConverter(xmlMapper));
|
|
|
|
super.configureMessageConverters(converters);
|
|
}
|
|
}
|