Java эквивалентен app.config? - PullRequest
23 голосов
/ 17 октября 2008

Есть ли Java эквивалентный .NET App.Config?

Если нет стандартного способа сохранить настройки приложения, чтобы их можно было изменить после распространения приложения?

Ответы [ 3 ]

17 голосов
/ 17 октября 2008

Для WebApps web.xml может использоваться для хранения настроек приложения.

Кроме этого, вы можете использовать класс Properties для чтения и записи файлов свойств.

Возможно, вы также захотите взглянуть на класс Preferences , который используется для чтения и записи системных и пользовательских настроек. Это абстрактный класс, но вы можете получить соответствующие объекты, используя userNodeForPackage(ClassName.class) и systemNodeForPackage(ClassName.class).

9 голосов
/ 27 сентября 2013

Чтобы ввести предложение @ 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.
    }
}

Затем в корне контейнера (например, в верхней части файла JAR) поместите файл Configuration.cnf со следующим содержимым:

#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename

Это чувство не идеальное (мне было бы интересно услышать улучшения), но достаточно хорошее для моих текущих потребностей.

2 голосов
/ 17 октября 2008

Простой способ - это просто иметь файл свойств, например, myapp.properties, со всеми вашими настройками. Это не очень продвинутый способ настройки, но этого достаточно, или вы можете иметь собственную настройку на основе XML, получить их из базы данных и т. д.

...