diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/config/WebConfig.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/config/WebConfig.java new file mode 100644 index 00000000..548d4a54 --- /dev/null +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/config/WebConfig.java @@ -0,0 +1,21 @@ +package com.nflg.mobilebroken.cfs.config; + +import com.nflg.mobilebroken.cfs.interceptor.LanguageInterceptor; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.annotation.Resource; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Resource + private LanguageInterceptor languageInterceptor; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + // 注册拦截器并指定拦截路径 + registry.addInterceptor(languageInterceptor).addPathPatterns("/**"); + } +} diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/interceptor/LanguageInterceptor.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/interceptor/LanguageInterceptor.java new file mode 100644 index 00000000..8792abdf --- /dev/null +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/interceptor/LanguageInterceptor.java @@ -0,0 +1,28 @@ +package com.nflg.mobilebroken.cfs.interceptor; + +import cn.hutool.core.util.StrUtil; +import com.nflg.mobilebroken.common.util.MultilingualUtil; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Component +public class LanguageInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // 从请求头中获取 language 参数 + String language = request.getHeader("language"); + if(StrUtil.isNotBlank(language)){ + MultilingualUtil.setLanguage(language); + } + return true; + } + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + // 请求完成后清理 ThreadLocal,防止内存泄漏 + MultilingualUtil.clear(); + } +}