public static final String Package = "org.apache.catalina.core";
//上面的这个属性来自Constants.java类里
private static Hashtable managers = new Hashtable();
/**
* The string manager for this package.
*/
private static final StringManager sm =
StringManager.getManager(Constants.Package);
public synchronized static StringManager getManager(String
packageName) {
StringManager mgr = (StringManager)managers.get(packageName);
if (mgr == null) {
mgr = new StringManager(packageName);
managers.put(packageName, mgr);
}
return mgr;
}
private StringManager(String packageName) {
String bundleName = packageName + ".LocalStrings";
try {
bundle = ResourceBundle.getBundle(bundleName);
return;
} catch( MissingResourceException ex ) {
而在StandardServer.java类中是这样使用的,
public void start() throws LifecycleException {
// Validate and update our current component state
if (started) {
log.debug(sm.getString("standardServer.start.started"));
//根据这里的key值在资源文件中查找对应的value值,LocalStrings.properties资源文件中可以找到standardServer.start.started=This server has already been started配置项
return;
}
如果本地环境为日文系统,那么通过org.apache.catalina.startup.LocalStrings键值取得的资源是org.apache.catalina.startup.LocalStrings_ja.properties中的文件信息。
最后通过bundle.getString(key);方法,即可得到本地资源信息。