[java] Java Apache Commons Configuration을 사용한 모듈화된 설정 구성
Apache Commons Configuration은 Java 프로젝트에서 설정 파일을 읽고 구성하는 데 사용되는 라이브러리입니다. 이를 사용하여 모듈화된 방식으로 설정을 구성하고 관리하는 방법에 대해 알아보겠습니다.
설정 파일 준비
먼저, 설정 파일을 준비해야 합니다. 일반적으로 properties 파일이나 XML 파일을 사용하여 설정을 정의할 수 있습니다. 예를 들어, 다음과 같이 “config.properties” 파일을 만들어서 설정을 정의할 수 있습니다.
# Database 정보
db.url=localhost
db.port=3306
db.username=myuser
db.password=mypassword
# 로그 레벨
log.level=DEBUG
# 서버 설정
server.host=127.0.0.1
server.port=8080
Maven 종속성 추가
Apache Commons Configuration을 사용하기 위해 Maven 종속성을 추가해야 합니다. pom.xml
파일에 다음 종속성을 추가해주세요.
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
설정 로드하기
이제 Java 코드에서 설정을 로드해보겠습니다.
import org.apache.commons.configuration2.PropertiesConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
public class AppConfig {
private PropertiesConfiguration config;
public AppConfig(String configFile) {
try {
config = new PropertiesConfiguration(configFile);
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
public String getDatabaseUrl() {
return config.getString("db.url");
}
public int getDatabasePort() {
return config.getInt("db.port");
}
public String getDatabaseUsername() {
return config.getString("db.username");
}
public String getDatabasePassword() {
return config.getString("db.password");
}
public String getLogLevel() {
return config.getString("log.level");
}
public String getServerHost() {
return config.getString("server.host");
}
public int getServerPort() {
return config.getInt("server.port");
}
}
위의 코드에서 PropertiesConfiguration
클래스를 사용하여 설정 파일을 로드합니다. configFile
인자에 로드할 설정 파일의 경로를 전달하면, 해당 파일의 설정을 읽을 수 있게 됩니다. 설정 값을 가져오기 위해 각각의 get
메소드를 정의하였습니다.
설정 사용하기
이제 AppConfig 클래스의 인스턴스를 생성하고, 필요한 설정 값을 사용할 수 있습니다.
public class App {
public static void main(String[] args) {
AppConfig appConfig = new AppConfig("config.properties");
// 설정 값 사용하기
System.out.println("Database URL: " + appConfig.getDatabaseUrl());
System.out.println("Database Port: " + appConfig.getDatabasePort());
System.out.println("Database Username: " + appConfig.getDatabaseUsername());
System.out.println("Database Password: " + appConfig.getDatabasePassword());
System.out.println("Log Level: " + appConfig.getLogLevel());
System.out.println("Server Host: " + appConfig.getServerHost());
System.out.println("Server Port: " + appConfig.getServerPort());
}
}
위의 코드에서는 AppConfig 클래스의 인스턴스를 생성하고, 필요한 설정 값을 가져와서 출력합니다.
결론
Apache Commons Configuration을 사용하면 Java 프로젝트의 설정을 모듈화하고 쉽게 관리할 수 있습니다. 이를 통해 설정 파일의 변경에 따라 코드를 수정하지 않고도 설정 값을 업데이트할 수 있습니다.