实例
先来看一段代码
PropertyUtil.getPropertyByKey("china")
效果就是从配置文件中获取一个key为china的配置值
中国
这是通过ResourceBundle 读取的
上源码
package com.allen.springdemo.propertykey;
import org.jetbrains.annotations.PropertyKey;
import java.util.Locale;
import java.util.ResourceBundle;
import java.text.MessageFormat;
public class PropertyUtil {
public static String getPropertyByKey(@PropertyKey(resourceBundle = "i18n.message") String key, Object ... params){
ResourceBundle bundle = ResourceBundle.getBundle("i18n/message", new Locale("zh", "CN"));
String value = bundle.getString(key);
if (params.length >0) return MessageFormat.format(value, params);
return value;
}
}
配置文件
src/main/resources/i18n/message_zh_CN.properties
china=中国
hello=你好啊{0}
功能说明
配置文件
通过properties文件可以配置一些参数,或者做一些国际化,资源化管理。比如进行一些异常定义,文本输出国际化等等
ResourceBundle(资源包)是一组属性文件,与不同语言特定后缀具有相同的基本名称。资源包至少包含两个具有类似基本名称的属性文件,
例如
message_zh_CN.properties
message_en_US.properties。
IntelliJ IDEA 能够识别资源包,并用图标标记它们。
读取文件
ResourceBundle bundle = ResourceBundle.getBundle("i18n/message", new Locale("zh", "CN"));
其中 i18n 为文件目录 message为一组文件的前缀 而 zh和CN这是在这一组文件中找到对应的那个文件