Spring MVC
SessionLocaleResolver uses HttpSession to store a custom locale instance.
package com.logicbig.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean;import org.springframework.web.servlet.LocaleResolver;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;import org.springframework.web.servlet.i18n.SessionLocaleResolver;import java.util.Locale;@SpringBootApplicationpublic class Main { public static void main (String[] args) { SpringApplication.run(Main.class, args); } @Bean public LocaleResolver localeResolver () { SessionLocaleResolver r = new SessionLocaleResolver(); r.setDefaultLocale(Locale.US); return r; } @Bean public WebMvcConfigurer configurer () { return new WebMvcConfigurerAdapter() { @Override public void addInterceptors (InterceptorRegistry registry) { LocaleChangeInterceptor l = new LocaleChangeInterceptor(); l.setParamName("localeCode"); registry.addInterceptor(l); } }; }}