Oma*_*eji 24 java configuration-files
是否有一个Java等同于.NET的App.Config?
如果没有,是否有标准的方法来保持应用程序设置,以便在分发应用程序后可以更改它们?
Pow*_*ord 17
对于WebApps,web.xml可用于存储应用程序设置.
除此之外,您可以使用Properties类来读取和写入属性文件.
您可能还想查看Preferences类,该类用于读取和写入系统和用户首选项.它是一个抽象类,但您可以使用userNodeForPackage(ClassName.class)和获取适当的对象systemNodeForPackage(ClassName.class).
将@ Powerlord的建议(+1)Properties用于示例代码:
public class SomeClass {
public static void main(String[] args){
String dbUrl = "";
String dbLogin = "";
String dbPassword = "";
if (args.length<3) {
//If no inputs passed in, look for a configuration file
URL configFile = SomeClass.class.getClass().getResource("/Configuration.cnf");
try {
InputStream configFileStream = configFile.openStream();
Properties p = new Properties();
p.load(configFileStream);
configFileStream.close();
dbUrl = (String)p.get("dbUrl");
dbLogin = (String)p.get("dbUser");
dbPassword = (String)p.get("dbPassword");
} catch (Exception e) { //IO or NullPointer exceptions possible in block above
System.out.println("Useful message");
System.exit(1);
}
} else {
//Read required inputs from "args"
dbUrl = args[0];
dbLogin = args[1];
dbPassword = args[2];
}
//Input checking one three items here
//Real work here.
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在容器的根目录(例如jar文件的顶部)放置一个Configuration.cnf包含以下内容的文件:
#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename
Run Code Online (Sandbox Code Playgroud)
这种感觉并不完美(我有兴趣听到改进),但足以满足我目前的需求.
| 归档时间: |
|
| 查看次数: |
25307 次 |
| 最近记录: |