java의 properties 를 대치하는 PropertiesConfiguration class
개요
PropertiesConfiguration 은 apache commons-configuration 에 포함된 클래스로 java.util.Properties 의 대체 라이브러리이다.
Property 에 비해 다양한 기능을 제공하고 사용하기 손쉬운 장점이 있다.
사용
maven dependancy
<dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.9</version> </dependency>
Using PropertiesConfiguration
loading & access
다음과 같은 usergui.properties 있을 때
# Properties definining the GUI colors.background = #FFFFFF colors.foreground = #000080 window.width = 500 window.height = 300
프로퍼티 파일 로딩
// path 를 절대 경로로 주지 않았을 경우 다음 경로에서 찾게 됨 //1. current directory //2. user home directory //3. classpath Configuration config = new PropertiesConfiguration("usergui.properties");
property 가 로딩되었으면 다음과 같이 Cofiguration interface 를 통해 property 에 접근할 수 있음
String backColor = config.getString("colors.background"); Dimension size = new Dimension(config.getInt("window.width"), config.getInt("window.height"));
Include
property name 이 "include" 이고 value 가 disk 에 있는 property 파일의 이름일 경우 해당 파일의 내용을 현재 property 에 포함시키게 됨.
usergui.properties
# usergui.properties include = colors.properties include = sizes.properties
colors.properties
# colors.properties colors.background = #FFFFFF
List and arrays
다음과 같이 하나의 property 의 value 에 list 나 array 로 설정하는게 가능
# chart colors
colors.pie = #FF0000, #00FF00, #0000FF
해당 값은 array 나 java.util.List 를 통해 추출할 수 있음.
String[] colors = config.getStringArray("colors.pie"); List colorList = config.getList("colors.pie");
Saving
configuration 이 변경되었을 경우 save() method 를 이용하여 반영할수 있음.
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties"); config.setProperty("colors.background", "#000000); config.save();
You can also save a copy of the configuration to another file:
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties"); config.setProperty("colors.background", "#000000); config.save("usergui.backup.properties);