package com.springone.myrestaurants.config; import com.springone.myrestaurants.web.DatastoreInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.ConversionService; import org.springframework.data.document.web.servlet.ActionInterceptor; import org.springframework.format.support.FormattingConversionService; import org.springframework.format.support.FormattingConversionServiceFactoryBean; import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.ResourceHttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.xml.SourceHttpMessageConverter; import org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter; import org.springframework.validation.Validator; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import org.springframework.web.bind.support.ConfigurableWebBindingInitializer; import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter; @Configuration public class HandlerAdapterConfiguration { @Autowired private DatastoreInterceptor datastoreInterceptor; @Bean public AnnotationMethodHandlerAdapter annotationMethodHandlerAdapter() { AnnotationMethodHandlerAdapter adapter = new AnnotationMethodHandlerAdapter(); ActionInterceptor[] interceptors = new ActionInterceptor[]{datastoreInterceptor}; //adapter.setActionInterceptors(interceptors); ConfigurableWebBindingInitializer wbi = new ConfigurableWebBindingInitializer(); wbi.setValidator(getValidator()); wbi.setConversionService(conversionService()); adapter.setWebBindingInitializer(wbi); adapter.setMessageConverters(getMessageConverters()); adapter.setOrder(-1); return adapter; } @Bean public ConversionService conversionService() { FormattingConversionServiceFactoryBean fb = new FormattingConversionServiceFactoryBean(); fb.afterPropertiesSet(); FormattingConversionService cs = fb.getObject(); return cs; } private Validator getValidator() { LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean(); validator.afterPropertiesSet(); return validator; } private HttpMessageConverter<?>[] getMessageConverters() { HttpMessageConverter<?>[] converters = new HttpMessageConverter<?>[]{ new ByteArrayHttpMessageConverter(), new StringHttpMessageConverter(), new ResourceHttpMessageConverter(), new SourceHttpMessageConverter(), new XmlAwareFormHttpMessageConverter(), }; return converters; } /* @Bean public ConfigurableWebBindingInitializer configurableWebBindingInitializer() { ConfigurableWebBindingInitializer bi = new ConfigurableWebBindingInitializer(); return bi; } @Bean public FormattingConversionServiceFactoryBean formattingConversionServiceFactoryBean() { FormattingConversionServiceFactoryBean conversionServiceFB = new FormattingConversionServiceFactoryBean(); return conversionServiceFB; }*/ }