Конфигурация Apache Commons наиболее известна благодаря возможности библиотеки работать с файлами конфигурации, то есть анализировать в файле .properties
.
Например:
color=Green
person=John
Этот файл свойств может находиться в пути к классам или в жестком каталоге. Используя конфигурации Apache Commons, вы можете легко разобрать анализ и получить значение, представленное его ключом.
См. Этот быстрый учебник .
EDIT
Но почему конфигурация или конфигурации Apache Commons?
Иногда вам не нужно жестко кодировать конкретное значение в коды, которые должны быть скомпилированы. Например, у вас может быть прикладная переменная BACKGROUND_COLOR , значение этой переменной определяет цвет фона вашего приложения. Как бы вы сохранили это в своем приложении?
Вы можете сделать это:
public static final String BACKGROUND_COLOR = "Green";
Однако, если вы хотите изменить цвет фона на «Красный», вам придется изменить приведенный выше код, перекомпилировать его в:
public static final String BACKGROUND_COLOR = "Red";
Что, если вы не хотите менять свои коды, перекомпилируйте, чтобы изменить фон вашего приложения? Да, вы можете сохранить это значение в текстовом файле с именем system.properties
или на самом деле с любым именем и расширением.
Например, вы можете сохранить его в system.properties:
background_color=Green
Но как вы читаете этот текстовый файл? (который сохраняется в формате свойств, key=value
). Вы хотите перейти на низкоуровневый File и IO, чтобы прочитать эти значения? Скорее всего, вы не хотите, вы хотели бы, чтобы зрелая и устоявшаяся библиотека сделала это для вас.
Для этой цели вы можете использовать конфигурации Apache Commons. Эта библиотека предназначена для чтения конфигураций, таких как файл свойств.
Используя конфигурации Apache Commons, вот коды для чтения вышеуказанного файла свойств и извлечения значения ключа background_color
.
public static void main(String [] args){
Configuration config = new PropertiesConfiguration("system.properties");
String backColor = config.getString("background_color");
System.out.println(backColor); // this will give you green
}
Надеюсь, это поможет вашему пониманию. :)