MST
星途 面试题库

面试题:Java 中 Spring Boot 如何实现基础的国际化

请阐述在 Spring Boot 项目里,配置国际化资源文件的步骤以及如何在控制器中获取国际化后的消息。
36.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

配置国际化资源文件步骤

  1. 创建资源文件:在src/main/resources目录下创建messages.properties文件作为默认语言资源文件。如果需要支持其他语言,创建如messages_zh_CN.properties(中文简体)、messages_en_US.properties(英文美国)等文件,文件名遵循baseName_语言代码_国家/地区代码.properties格式。
  2. 配置Spring Boot:在application.propertiesapplication.yml文件中配置Spring Boot对国际化的支持。例如在application.properties中:
spring.messages.basename=messages
spring.messages.encoding=UTF-8

spring.messages.basename指定资源文件的基础名称,spring.messages.encoding指定编码格式。

在控制器中获取国际化后的消息

  1. 注入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;
    }
}
  1. 获取消息:调用messageSource.getMessage方法,传入消息键(key)、参数数组(若消息中有占位符)和区域设置(Locale)。如果不指定区域设置,会使用默认区域设置。例如,假设messages.properties中有key=Hello, World!messages_zh_CN.properties中有key=你好,世界!,上述代码会根据当前系统的区域设置返回相应语言的消息。