package com.juick.www.configuration; import com.juick.www.HelpService; import com.juick.www.WebApp; import org.apache.commons.lang3.CharEncoding; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.guava.GuavaCacheManager; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.cache.interceptor.SimpleKeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.core.env.Environment; import javax.annotation.Resource; /** * Created by aalexeev on 11/22/16. */ @Configuration @PropertySource("classpath:juick.conf") @EnableCaching public class WebAppConfiguration { @Resource private Environment env; @Bean public ResourceBundleMessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages", "errors"); messageSource.setDefaultEncoding(CharEncoding.UTF_8); messageSource.setFallbackToSystemLocale(false); messageSource.setUseCodeAsDefaultMessage(true); return messageSource; } @Bean public WebApp webApp() { return new WebApp(env); } @Bean public GuavaCacheManager cacheManager() { return new GuavaCacheManager("help"); } @Bean public HelpService helpService() { return new HelpService("help"); } @Bean public KeyGenerator keyGenerator() { // configure and return an implementation of Spring's KeyGenerator SPI return new SimpleKeyGenerator(); } }