[Spring Batch] jobConfig.properties

아현·2024년 12월 23일
1

Spring

목록 보기
7/7

jobConfig.properties


jobConfig.properties 파일은 일반적으로 Java 애플리케이션에서 사용되는 설정 파일의 한 종류로, 애플리케이션의 다양한 구성 옵션과 환경 설정을 정의하는 데 사용됩니다. 이 파일은 Key-Value 쌍 형태의 구성을 포함하며, 응용 프로그램의 동작을 설정하는 데 유용합니다.

예를 들어 jobConfig.properties 파일은 다음과 같은 내용을 포함할 수 있습니다:


# Database connection settings
db.url=jdbc:mysql://localhost:3306/mydatabase
db.username=root
db.password=securepassword

# Job-specific configurations
job.name=Data Processing Job
job.schedule=0 0 * * * ?
job.retryAttempts=3

# Logging settings
logging.level=INFO
logging.file=app.log

위의 예에서 볼 수 있듯이, 각 설정은 특정한 기능을 설정하는데 사용됩니다. #로 시작하는 줄은 주석으로 간주되어 무시됩니다.



일반적인 사용처


  1. 데이터베이스 연결 설정: 데이터베이스 URL, 사용자 이름, 비밀번호 같은 정보를 설정할 수 있습니다.

  2. 잡(Job) 설정: 특정 작업이나 프로세스의 이름, 스케줄, 실행 조건 등을 정의할 수 있습니다.

  3. 로그 설정: 로그의 레벨(INFO, DEBUG 등)과 로그 파일의 경로 등을 지정할 수 있습니다.

  4. 기타 애플리케이션 설정: 다양한 애플리케이션 동작에 필요한 설정을 정의할 수 있습니다.



이점


  • 단순성: 프로퍼티 파일은 구조가 간단하여 쉽게 읽고 수정할 수 있습니다.

  • 환경 분리: jobConfig.properties 파일의 내용을 바꿔 다른 환경(dev, test, production 등)에 맞게 애플리케이션을 구성할 수 있습니다.

  • 유연성: 개발자가 코드 수정 없이 동작이나 설정을 변경할 수 있습니다.

이 파일은 프로그래밍 언어와 개발 프레임워크에 따라 다르게 다뤄질 수 있지만, 자바 환경에서는 java.util.Properties 클래스를 통해 쉽게 읽고 쓸 수 있습니다.



특정 동기화 시간을 업데이트



#properties
#Thu Oct 26 09:08:00 KST 2023

# energy properties
hourlyEnergyJobSynchronizedTimeHour=2019060100
dailyEnergyJobSynchronizedTimeDay=20190601
monthlyEnergyJobSynchronizedTimeMonth=201906
yearlyEnergyJobSynchronizedTimeMonth=201906



Spring Batch에서 jobConfig.properties 파일에 있는 특정 동기화 시간을 업데이트


Spring Batch에서 jobConfig.properties 파일에 있는 특정 동기화 시간을 업데이트하는 코드를 작성하는 방법을 알아보겠습니다. 일반적으로 Spring Boot 애플리케이션에서 Properties 파일을 읽고 수정하려면 다음과 같은 프로세스를 따릅니다.

  1. 기존 jobConfig.properties 파일을 읽어옵니다.

  2. 원하는 속성 값을 업데이트합니다.

  3. 변경된 내용을 파일에 다시 저장합니다.

아래는 이러한 과정을 구현한 예시 코드입니다.


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import java.text.SimpleDateFormat;

public class JobConfigUpdater {

    private static final String PROPERTIES_FILE_PATH = "path/to/jobConfig.properties";

    public void updateProperty(String key, String newValue) throws IOException {
        // Load existing properties
        Properties properties = new Properties();
        try (FileInputStream inputStream = new FileInputStream(PROPERTIES_FILE_PATH)) {
            properties.load(inputStream);
        }

        // Update the target property
        properties.setProperty(key, newValue);

        // Save properties back to the file
        try (FileOutputStream outputStream = new FileOutputStream(PROPERTIES_FILE_PATH)) {
            properties.store(outputStream, "Updated on " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        }
    }

    public static void main(String[] args) {
        JobConfigUpdater updater = new JobConfigUpdater();
        try {
            // 예: 특정 작업의 시간을 현재 시간으로 업데이트
            String currentHour = new SimpleDateFormat("yyyyMMddHH").format(new Date());
            updater.updateProperty("hourlyEnergyJobSynchronizedTimeHour", currentHour);

            // 추가로 업데이트가 필요한 다른 속성들도 동일하게 처리
            // updater.updateProperty("다른 속성 키", "새로운 값");

            System.out.println("Properties updated successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



설명


  • Properties 객체 사용: 자바의 Properties 객체를 사용하여 프로퍼티 파일을 읽고 쓸 수 있습니다.

  • 파일 경로: PROPERTIES_FILE_PATH에는 실제 jobConfig.properties 파일의 경로를 입력해야 합니다.

  • 날짜 포맷: SimpleDateFormat을 사용하여 현재 시각을 원하는 형식으로 변환하고 설정할 수 있습니다.

  • 키 업데이트: 특정 작업의 동기화 시간을 업데이트하기 위해 updateProperty 메서드를 호출합니다.

  • 파일 저장: 변경된 프로퍼티를 파일에 저장할 때 주석으로 업데이트된 시간 정보를 추가할 수 있습니다.

이 코드를 사용하면 특정 키의 값을 동적으로 업데이트할 수 있으며, 필요에 따라 여러 키를 한 번에 업데이트하도록 확장할 수 있습니다. 배치 작업 실행이 끝날 때마다 이러한 과정을 수행하면, 다음 실행 시점에 참조할 수 있는 최신 동기화 시간을 갖게 됩니다.



profile
For the sake of someone who studies computer science

0개의 댓글