一、配置参数
在application.yml
中添加如下参数
spring:
messages:
basename: i18n/messages # 国际化资源文件
二、添加国际化文件
在resources
目录下添加国际化资源文件
默认配置文件messages.properties
STATUS_200=OK
STATUS_400=Bad_request
STATUS_403=Forbid
messages_zh_CN.properties
STATUS_200=成功
STATUS_400=操作失败
STATUS_403=禁止访问
三、使用
在需要用到的地方注入MessageSource
类即可
@Slf4j
@RestControllerAdvice
public class DefaultExceptionHandler {
@Autowired
private MessageSource messageSource;
/**
* 处理所有自定义异常
* @param e 异常
*/
@ExceptionHandler(Http403Exception.class)
public ResultJson handleCustomException(Http403Exception e){
return new ResultJson(400, messageSource.getMessage("STATUS_400", null, LocaleContextHolder.getLocale()));
// return new ResultJson(400, messageSource.getMessage("STATUS_400", null, RequestContextUtils.getLocale(request)));
}
}
或者使用工具类MessageSourceAccessor
@Configuration
public class MessageConfig {
@Autowired
private MessageSource messageSource;
@Bean
public MessageSourceAccessor messageSourceAccessor() {
return new MessageSourceAccessor(messageSource);
}
}
@Slf4j
@RestControllerAdvice
public class DefaultExceptionHandler {
@Autowired
private MessageSourceAccessor messageSourceAccessor;
/**
* 处理所有自定义异常
* @param e 异常
*/
@ExceptionHandler(Http403Exception.class)
public ResultJson handleCustomException(Http403Exception e){
return new ResultJson(400, messageSourceAccessor.getMessage("STATUS_400"));
}
}