본문 바로가기

dev/java 배포

java properties 조회 #005

반응형

db 설정 파일 경로 등 properties에 설정합니다.

 

app.properties 메뉴 구조

properties 조회
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.Properties;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Main {
    private static final Logger logger = LogManager.getLogger(Main.class);
    private static final Properties dbProps = new Properties();

    static {
        try (InputStream input = Main.class.getClassLoader().getResourceAsStream("app.properties")) {
            dbProps.load(input);
        } catch (IOException ex) {
            logger.error("app.properties 파일을 로드하는 데 실패했습니다.", ex);
            throw new RuntimeException("설정 파일 로드 실패", ex);
        }
    }

    public static void main(String[] args) {

        ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();

        Runnable task = () -> {

            // Oracle 연결
            String oracleUrl = dbProps.getProperty("oracle.url");
            String oracleUser = dbProps.getProperty("oracle.username");
            String oraclePassword = dbProps.getProperty("oracle.password");

            logger.info("properties oracleUrl! >>> " + oracleUrl);
            logger.info("properties oracleUser! >>> " + oracleUser);
            logger.info("properties oraclePassword! >>> " + oraclePassword);
        };

        scheduler.scheduleAtFixedRate(task, 0, 5, TimeUnit.SECONDS);

        try {
            Thread.sleep(Long.MAX_VALUE);
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        } finally {
            scheduler.shutdown();
        }

    }
}

 

static 변수로 지정
  • app.properties 파일 조회
private static final Properties dbProps = new Properties();

static {
    try (InputStream input = Main.class.getClassLoader().getResourceAsStream("app.properties")) {
        dbProps.load(input);
    } catch (IOException ex) {
        logger.error("app.properties 파일을 로드하는 데 실패했습니다.", ex);
        throw new RuntimeException("설정 파일 로드 실패", ex);
    }
}

 

app.properties
# Oracle db
oracle.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
oracle.username=hoho
oracle.password=hoho
oracle.driver=oracle.jdbc.driver.OracleDriver

# 읽을 파일 경로
textfile.path=C:/sys/2025/javaRun_jar/txt.txt

 

설정된 Property 조회
String oracleUrl = dbProps.getProperty("oracle.url");
String oracleUser = dbProps.getProperty("oracle.username");
String oraclePassword = dbProps.getProperty("oracle.password");

String oraclePassword = dbProps.getProperty("textfile.path");
반응형

'dev > java 배포' 카테고리의 다른 글

java file read db 저장 #007  (0) 2025.05.01
java 텍스트 file 읽기 #006  (0) 2025.05.01
java 실행 스케줄러 #003  (0) 2025.04.29
[JAVA] TimeUnit  (0) 2025.04.29
[JAVA] ScheduledExecutorService.scheduleAtFixedRate  (0) 2025.04.29