使用教程
废话少说 直接上代码
拦截器中加入如下配置
@Component
public class TokenInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws SignatureException {
String language = request.getHeader(Lange.KEY);
if (StringUtils.isEmpty(language)) {
language = Lange.CHINESE;
}
LanguageThreadLocal.setLanguage(language);
return true;
}
}
LanguageThreadLocal类
package com.example.pidog2.threadLocal;
public class LanguageThreadLocal {
private LanguageThreadLocal() {
}
private static final ThreadLocal<String> Language = new ThreadLocal<>();
/**
* 存储当前语言
*/
public static void setLanguage(String lang) {
Language.set(lang);
}
/**
* 获取当前语言
*/
public static String getLanguage() {
return Language.get();
}
}
package com.example.pidog2.definition;
public class Lange {
//Key值
public static final String KEY = "LANGE";
public static final String ENGLISH = "EN";
public static final String CHINESE = "CN";
}
package com.example.pidog2.exception;
public enum ExceptionLangeVo {
CHECK_ERROR(405, "验证码错误", "Verification code error"),
PHONE_NUMBER_EXISTS(409, "手机号已存在", "phone number already exists"),
USER_NAME_EXISTS(410, "用户名已存在", "login name already exists"),
LOGIN_EXPIRED(401, "登录过期", "Login expired"),
LOGIN_ERROR(402, "账号或密码错误", "userName or Password input error"),
USER_NOT_FOUND(403, "用户不存在", "userName is not found"),
STOP(407, "用户被封禁", "Account deactivated");
ExceptionLangeVo(Integer code, String msgCn, String msgEn) {
this.msgCn = msgCn;
this.msgEn = msgEn;
this.code = code;
}
private Integer code;
private String msgCn;
private String msgEn;
public Integer getCode() {
return code;
}
public String getMsgCn() {
return msgCn;
}
public String getMsgEn() {
return msgEn;
}
}
package com.example.pidog2.util;
import com.example.pidog2.definition.Lange;
import com.example.pidog2.exception.ExceptionLangeVo;
import com.example.pidog2.threadLocal.LanguageThreadLocal;
public class ExceptionLangeUtil {
public static String getMsgByLange(Integer code){
for (ExceptionLangeVo value : ExceptionLangeVo.values()) {
if(value.getCode().equals(code)){
if(LanguageThreadLocal.getLanguage().equals(Lange.ENGLISH)){
return value.getMsgEn();
}
return value.getMsgCn();
}
}
throw new RuntimeException();
}
}