package kr.wisestone.owl.config; import kr.wisestone.owl.web.converter.FileHttpMessageConverter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.*; import org.springframework.web.servlet.i18n.CookieLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import java.util.Arrays; import java.util.List; import java.util.Locale; /** * Created by jeong on 2017-08-01. */ @EnableWebMvc @Configuration public class WebMvcConfiguration implements WebMvcConfigurer { @Override public void configureMessageConverters(List> converters) { converters.add(new StringHttpMessageConverter()); MappingJackson2HttpMessageConverter jsonConverter = this.mappingJackson2HttpMessageConverter(); jsonConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.TEXT_HTML)); converters.add(jsonConverter); FileHttpMessageConverter fileConverter = this.fileHttpMessageConverter(); converters.add(fileConverter); } @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { return new MappingJackson2HttpMessageConverter(); } @Bean public FileHttpMessageConverter fileHttpMessageConverter() { return new FileHttpMessageConverter(); } @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); commonsMultipartResolver.setMaxUploadSize(314572800); return commonsMultipartResolver; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("language"); return localeChangeInterceptor; } @Bean public LocaleResolver localeResolver() { CookieLocaleResolver localeResolver = new CookieLocaleResolver(); localeResolver.setCookieMaxAge(3600); localeResolver.setDefaultLocale(new Locale("ko_KR")); Locale locale = new Locale("ko", "KR"); locale.setDefault(locale); return localeResolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index.html"); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(this.localeChangeInterceptor()); } }