From 8b39e85052cf70c76e015b4e1e375b739be23130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sun, 23 Mar 2025 23:21:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=A4=B4language=E6=98=BE=E7=A4=BA=E5=AF=B9=E5=BA=94=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobilebroken/cfs/config/WebConfig.java | 21 ++++++++++++++ .../cfs/interceptor/LanguageInterceptor.java | 28 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/config/WebConfig.java create mode 100644 nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/interceptor/LanguageInterceptor.java 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(); + } +}