Есть ли Java-эквивалент .NET App.Config?Java эквивалент app.config?
Если нет стандартного способа сохранить настройки приложения, чтобы их можно было изменить после того, как приложение было распространено?
Есть ли Java-эквивалент .NET App.Config?Java эквивалент app.config?
Если нет стандартного способа сохранить настройки приложения, чтобы их можно было изменить после того, как приложение было распространено?
Для WebApps web.xml можно использовать для хранения настроек приложения.
Кроме этого, вы можете использовать класс Properties для чтения и записи файлов свойств.
Вы также можете ознакомиться с классом Preferences, который используется для чтения и записи системных и пользовательских настроек. Это абстрактный класс, но вы можете получить соответствующие объекты, используя userNodeForPackage(ClassName.class)
и systemNodeForPackage(ClassName.class)
.
Простой способ состоит в том, чтобы просто иметь файл свойств, например myapp.properties, со всеми вашими настройками. Это не очень продвинутый способ делать настройки, но этого достаточно, или вы можете иметь собственную настройку на основе XML, или получить их из базы данных и т. д.
Чтобы поставить @ предложение 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
Это не чувствовать себя совершенным (мне было бы интересно услышать улучшения), но достаточно хорошо для моих текущих потребностей.
Можете ли вы дать дополнительную информацию по первому варианту: «web.xml можно использовать для хранения настроек приложения»? Вы предлагаете сохранить настройки приложения как `context-param`s? Или что-то еще? – theyuv 2016-04-27 10:49:00
Есть несколько различных типов параметров, которые вы можете поместить в web.xml, но я, вероятно, имел в виду `context-param`. Я не помню, как прошло уже 7,5 лет. – Powerlord 2016-04-28 22:43:49