面试题答案
一键面试配置国际化资源文件步骤
- 创建资源文件:在
src/main/resources
目录下创建messages.properties
文件作为默认语言资源文件。如果需要支持其他语言,创建如messages_zh_CN.properties
(中文简体)、messages_en_US.properties
(英文美国)等文件,文件名遵循baseName_语言代码_国家/地区代码.properties
格式。 - 配置Spring Boot:在
application.properties
或application.yml
文件中配置Spring Boot对国际化的支持。例如在application.properties
中:
spring.messages.basename=messages
spring.messages.encoding=UTF-8
spring.messages.basename
指定资源文件的基础名称,spring.messages.encoding
指定编码格式。
在控制器中获取国际化后的消息
- 注入MessageSource:在控制器中通过构造函数注入
MessageSource
。
import org.springframework.context.MessageSource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Locale;
@RestController
public class MyController {
private final MessageSource messageSource;
public MyController(MessageSource messageSource) {
this.messageSource = messageSource;
}
@GetMapping("/message")
public String getMessage() {
Locale locale = Locale.getDefault(); // 获取当前区域设置
String message = messageSource.getMessage("key", null, locale);
return message;
}
}
- 获取消息:调用
messageSource.getMessage
方法,传入消息键(key
)、参数数组(若消息中有占位符)和区域设置(Locale
)。如果不指定区域设置,会使用默认区域设置。例如,假设messages.properties
中有key=Hello, World!
,messages_zh_CN.properties
中有key=你好,世界!
,上述代码会根据当前系统的区域设置返回相应语言的消息。