Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java是否等同于app.config?_Java_Configuration Files - Fatal编程技术网

Java是否等同于app.config?

Java是否等同于app.config?,java,configuration-files,Java,Configuration Files,是否有与.NET的App.Config相当的Java版本 如果没有,是否有一种标准的方法来保存您的应用程序设置,以便在发布应用程序后可以对其进行更改?简单的方法是,只需拥有一个属性文件,例如myapp.properties,其中包含您的所有设置。这不是一种非常高级的设置方法,但它已经足够了,或者您可以拥有自己的基于XML的设置,或者从数据库获取设置,等等。对于web应用程序,可以使用web.XML存储应用程序设置 除此之外,还可以使用该类读取和写入属性文件 您可能还想查看用于读取和写入系统和用户

是否有与.NET的App.Config相当的Java版本


如果没有,是否有一种标准的方法来保存您的应用程序设置,以便在发布应用程序后可以对其进行更改?

简单的方法是,只需拥有一个属性文件,例如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