package uk.ac.bbsrc.tgac.miso.webapp.context; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.support.ConfigurableWebBindingInitializer; import org.springframework.web.bind.support.SessionAttributeStore; import org.springframework.web.bind.support.WebBindingInitializer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import uk.ac.bbsrc.tgac.miso.spring.LimsBindingInitializer; import uk.ac.bbsrc.tgac.miso.webapp.util.SessionConversationAttributeStore; /** * uk.ac.bbsrc.tgac.miso.webapp.context * <p/> * Info * * @author Rob Davey * @date 07/02/13 * @since 0.1.9 */ @Configuration public class WebConfig extends WebMvcConfigurationSupport { @Bean public WebBindingInitializer bindingInitializer() { ConfigurableWebBindingInitializer initializer = new LimsBindingInitializer(); initializer.setConversionService(mvcConversionService()); initializer.setValidator(mvcValidator()); return initializer; } @Bean public SessionAttributeStore sessionAttributeStore() { SessionConversationAttributeStore sessionAttributeStore = new SessionConversationAttributeStore(); sessionAttributeStore.setNumConversationsToKeep(1000); return sessionAttributeStore; } @Bean public RequestMappingHandlerAdapter requestMappingHandlerAdapter() { RequestMappingHandlerAdapter adapter = super.requestMappingHandlerAdapter(); adapter.setWebBindingInitializer(bindingInitializer()); adapter.setSessionAttributeStore(sessionAttributeStore()); return adapter; } }