SpringI18nSupportWebAutoConfiguration.java
package com.namics.oss.spring.support.i18n.autoconfigure;
import com.namics.oss.spring.support.i18n.web.config.I18nWebConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import javax.inject.Inject;
import static org.springframework.util.StringUtils.hasText;
/**
* SpringI18nSupportWebAutoConfiguration.
*
* @author rgsell, Namics AG
* @since 14.09.17 09:19
*/
@Configuration
@ConditionalOnClass(I18nWebConfig.class)
@EnableConfigurationProperties(SpringI18nSupportProperties.class)
public class SpringI18nSupportWebAutoConfiguration {
protected static final String defaultServletMapping = "/i18n/*";
protected static final String defaultServletName = "i18nServlet";
@Inject
protected SpringI18nSupportProperties springI18nSupportProperties;
@Bean
public ServletRegistrationBean i18nSupportServlet() {
AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
applicationContext.register(I18nWebConfig.class);
DispatcherServlet dispatcherServlet = new DispatcherServlet();
dispatcherServlet.setApplicationContext(applicationContext);
ServletRegistrationBean registrationBean = new ServletRegistrationBean(dispatcherServlet, getServletMapping());
registrationBean.setName(getServletName());
registrationBean.setLoadOnStartup(1);
return registrationBean;
}
protected String getServletMapping() {
if (hasText(springI18nSupportProperties.getWeb().getServletMapping())) {
return springI18nSupportProperties.getWeb().getServletMapping();
}
return defaultServletMapping;
}
protected String getServletName() {
if (hasText(springI18nSupportProperties.getWeb().getServletName())) {
return springI18nSupportProperties.getWeb().getServletName();
}
return defaultServletName;
}
}