spring i18n使用案例
时间: 2024-02-24 18:25:40 浏览: 20
Spring框架提供了国际化(i18n)的支持,它可以帮助我们方便地实现多语言的支持。下面是一个使用Spring i18n的示例。
首先,在Spring的配置文件中添加如下的bean:
```xml
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
</bean>
```
在上面的配置中,我们创建了一个名为messageSource的bean,并且指定了使用ResourceBundleMessageSource类来加载国际化资源文件。basename属性指定了资源文件的名称前缀,默认情况下,它会尝试加载messages.properties文件,如果没有找到,则会尝试加载messages_en.properties、messages_zh.properties等文件。
接下来,在资源文件中添加对应的国际化文本。例如,在messages.properties文件中添加如下内容:
```
hello=Hello
```
在messages_zh.properties文件中添加如下内容:
```
hello=你好
```
现在,我们可以在代码中使用messageSource来获取国际化文本了。例如,下面的代码可以获取hello键对应的文本:
```java
@Autowired
private MessageSource messageSource;
public String getMessage(String key) {
return messageSource.getMessage(key, null, LocaleContextHolder.getLocale());
}
```
在上面的代码中,我们通过@Autowired注解注入了messageSource实例,并且定义了一个getMessage方法来获取国际化文本。其中,LocaleContextHolder.getLocale()方法可以获取当前的Locale信息,用于指定获取哪个语言的国际化文本。
使用上面的代码,我们可以在不同的地方调用getMessage方法来获取对应的国际化文本。例如:
```java
String hello = getMessage("hello");
System.out.println(hello); // 输出:Hello 或 你好,取决于当前的Locale信息
```
上面的示例演示了如何在Spring中使用国际化(i18n)功能,它可以帮助我们方便地实现多语言的支持。