spring.messages
时间: 2023-10-28 15:00:56 浏览: 146
spring.messages.basename属性用于指定国际化资源文件的基础名称。在Spring应用程序中,我们可以通过使用国际化资源文件来实现多语言支持。通过设置spring.messages.basename属性,我们可以告诉Spring应用程序要加载哪些国际化资源文件。
这个属性的值应该是一个逗号分隔的文件名列表,其中包含了国际化资源文件的基础名称。Spring将根据这些基础名称查找对应的国际化资源文件,然后根据当前的Locale选择合适的语言进行文本的翻译。
例如,如果我们设置spring.messages.basename为messages,那么Spring将会加载名为messages.properties的默认资源文件。***properties的文件,并将它们添加到basename列表中。
这样,当我们在应用程序中使用国际化消息时,Spring将自动根据当前的Locale选择合适的语言资源文件,并返回对应的翻译文本。
相关问题
spring.messages.basename
spring.messages.basename是Spring Boot中用于指定国际化资源文件的基本名称的属性。通过设置该属性,可以让Spring Boot自动加载对应的国际化资源文件,从而实现多语言支持。例如,如果设置spring.messages.basename为messages,则Spring Boot会自动加载messages.properties、messages_en.properties、messages_zh.properties等文件。在应用程序中使用国际化消息时,只需要使用对应的key即可,Spring Boot会自动根据当前语言环境加载对应的消息。
spring.messages怎么模糊匹配
在 Spring Boot 中,可以通过在 `spring.messages.basename` 属性中使用通配符来实现模糊匹配。例如,可以将 `spring.messages.basename` 属性设置为 `messages_*`,表示加载所有以 `messages_` 开头的资源文件,如 `messages_en.properties`、`messages_zh.properties` 等。
同时,还可以通过在 MessageSource 中配置 `setUseCodeAsDefaultMessage(true)` 来开启模糊匹配。这样,当找不到对应的消息时,就会使用消息代码作为默认消息。例如,在 `messages_en.properties` 中,定义了一个消息 `hello.world=Hello, World!`,在 `messages_zh.properties` 中,没有定义这个消息,但是定义了一个消息 `hello=你好`。当我们使用 `Locale.ENGLISH` 时,在 `messages_zh.properties` 中就找不到 `hello.world` 对应的消息,此时会使用 `hello.world` 作为默认消息。代码如下:
```java
@Autowired
private MessageSource messageSource;
public String getMessage(String code, Object... args) {
return messageSource.getMessage(code, args, code, LocaleContextHolder.getLocale());
}
```
在上面的代码中,当找不到对应的消息时,使用 `code` 作为默认消息。
需要注意的是,使用模糊匹配时,要确保所有的资源文件都遵循相同的命名规则,否则会出现加载不到资源文件的情况。
阅读全文
相关推荐










