Java是否等同于app.config?
是否有与.NET的App.Config相当的Java版本Java是否等同于app.config?,java,configuration-files,Java,Configuration Files,是否有与.NET的App.Config相当的Java版本 如果没有,是否有一种标准的方法来保存您的应用程序设置,以便在发布应用程序后可以对其进行更改?简单的方法是,只需拥有一个属性文件,例如myapp.properties,其中包含您的所有设置。这不是一种非常高级的设置方法,但它已经足够了,或者您可以拥有自己的基于XML的设置,或者从数据库获取设置,等等。对于web应用程序,可以使用web.XML存储应用程序设置 除此之外,还可以使用该类读取和写入属性文件 您可能还想查看用于读取和写入系统和用户
如果没有,是否有一种标准的方法来保存您的应用程序设置,以便在发布应用程序后可以对其进行更改?简单的方法是,只需拥有一个属性文件,例如myapp.properties,其中包含您的所有设置。这不是一种非常高级的设置方法,但它已经足够了,或者您可以拥有自己的基于XML的设置,或者从数据库获取设置,等等。对于web应用程序,可以使用web.XML存储应用程序设置 除此之外,还可以使用该类读取和写入属性文件
您可能还想查看用于读取和写入系统和用户首选项的类。它是一个抽象类,但是您可以使用
userNodeForPackage(ClassName.class)
和systemNodeForPackage(ClassName.class)
将@Powerlord使用属性的建议(+1)放入示例代码中,以获得适当的对象:
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.
}
}
这种感觉并不完美(我很想听到改进),但足以满足我当前的需求。真的吗?那么您几乎是在文件上运行流读取器来获取设置?在多个类的情况下,您需要一个可以跨多个类使用的帮助器类?这是Java能提供的最好的解决方案吗???这看起来很幼稚。这是我在2013年所能做到的最好的,因为我的需要。我相信,更通用的解决方案通常都包含在应用服务器中。我想到了“EnterpriseJavaBeans”,尽管我本人从未在这种环境中工作过。您能否提供关于第一个选项的更多信息:“web.xml可用于存储应用程序设置”?您是否建议将应用程序设置存储为context param
s?或者别的什么?有几种不同类型的参数可以放在web.xml中,但我的意思可能是上下文参数
。我不记得了,因为从那时起已经7.5年了。
#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename