Skip to content

Instantly share code, notes, and snippets.

@Winged-Git
Created October 22, 2020 04:42
Show Gist options
  • Save Winged-Git/bf28efb77b55d45eb2d18bd90c13771c to your computer and use it in GitHub Desktop.
Save Winged-Git/bf28efb77b55d45eb2d18bd90c13771c to your computer and use it in GitHub Desktop.
外部Jar化したコードの一部。
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
@Configuration
public class BaseApplicationConfig implements WebMvcConfigurer {
private final LocaleChangeInterceptor localeChangeInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor)
.addPathPatterns("/**")
.excludePathPatterns("/static/**");
}
}
import java.util.Locale;
import javax.servlet.ServletContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import lombok.Setter;
@Configuration
public class BaseBeanConfig implements ServletContextAware {
/* ロケールのリクエストパラメータをlangにしたい */
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
return interceptor;
}
/* for ServletContextAware */
@Setter(onMethod = @__({ @Override }))
private ServletContext servletContext;
/* Cookieにロケール情報を持つ */
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver resolver = new CookieLocaleResolver();
resolver.setDefaultLocale(Locale.JAPAN);
resolver.setCookieName("app.setting.locale");
/* CookieLocaleResolverはデフォでcookieのpathを / にしてしまうのでアプリケーションのコンテキストパスにする */
resolver.setCookiePath(servletContext.getContextPath());
/* --> が、ContextPathがnullでされておらず、NullPointerException */
return resolver;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment