import문 정리
parent
76e8e93f0b
commit
0004196d85
@ -1,107 +0,0 @@
|
||||
package egovframework.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* packageName : egovframework.util
|
||||
* fileName : BatchSessionUtil
|
||||
* author : 시스템 관리자
|
||||
* date : 2025-01-27
|
||||
* description : 배치 작업에서 사용할 수 있는 세션 관리 유틸리티 클래스
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 2025-01-27 시스템 관리자 최초 생성
|
||||
*/
|
||||
@Slf4j
|
||||
public class BatchSessionUtil {
|
||||
|
||||
/**
|
||||
* 배치 작업용 시스템 사용자 ID
|
||||
*/
|
||||
public static final String BATCH_SYSTEM_USER_ID = "BATCH_SYSTEM";
|
||||
|
||||
/**
|
||||
* 배치 작업용 시스템 사용자 계정
|
||||
*/
|
||||
public static final String BATCH_SYSTEM_USER_ACCOUNT = "BATCH_SYSTEM";
|
||||
|
||||
/**
|
||||
* 배치 작업용 시스템 사용자 이름
|
||||
*/
|
||||
public static final String BATCH_SYSTEM_USER_NAME = "시스템 배치";
|
||||
|
||||
/**
|
||||
* 배치 작업에서 사용할 수 있는 사용자 ID를 반환합니다.
|
||||
*
|
||||
* @return 배치 시스템 사용자 ID
|
||||
*/
|
||||
public static String getBatchUserId() {
|
||||
return BATCH_SYSTEM_USER_ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* 배치 작업에서 사용할 수 있는 사용자 계정을 반환합니다.
|
||||
*
|
||||
* @return 배치 시스템 사용자 계정
|
||||
*/
|
||||
public static String getBatchUserAccount() {
|
||||
return BATCH_SYSTEM_USER_ACCOUNT;
|
||||
}
|
||||
|
||||
/**
|
||||
* 배치 작업에서 사용할 수 있는 사용자 이름을 반환합니다.
|
||||
*
|
||||
* @return 배치 시스템 사용자 이름
|
||||
*/
|
||||
public static String getBatchUserName() {
|
||||
return BATCH_SYSTEM_USER_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* 배치 작업이 시스템 권한을 가지고 있는지 확인합니다.
|
||||
*
|
||||
* @return 항상 true (배치 작업은 시스템 권한으로 실행)
|
||||
*/
|
||||
public static boolean isBatchSystemUser() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 배치 작업의 실행 컨텍스트 정보를 로깅합니다.
|
||||
*
|
||||
* @param jobName 배치 작업 이름
|
||||
* @param jobGroup 배치 작업 그룹
|
||||
*/
|
||||
public static void logBatchContext(String jobName, String jobGroup) {
|
||||
log.info("배치 작업 실행 컨텍스트 - 작업: {}.{}, 사용자: {}, 계정: {}, 시스템권한: {}",
|
||||
jobGroup, jobName, getBatchUserId(), getBatchUserAccount(), isBatchSystemUser());
|
||||
}
|
||||
|
||||
/**
|
||||
* 배치 작업에서 세션 정보 접근 시 안전한 처리를 위한 래퍼 메서드입니다.
|
||||
*
|
||||
* @param sessionAccessor 세션 접근 함수
|
||||
* @param defaultValue 기본값
|
||||
* @param <T> 반환 타입
|
||||
* @return 세션 정보 또는 기본값
|
||||
*/
|
||||
public static <T> T safeSessionAccess(SessionAccessor<T> sessionAccessor, T defaultValue) {
|
||||
try {
|
||||
return sessionAccessor.access();
|
||||
} catch (Exception e) {
|
||||
log.debug("세션 접근 실패 (배치 컨텍스트), 기본값 사용: {}", e.getMessage());
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 세션 접근을 위한 함수형 인터페이스
|
||||
*
|
||||
* @param <T> 반환 타입
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface SessionAccessor<T> {
|
||||
T access() throws Exception;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue