From 08e8fd27062c89c0d3aab792dd8d74922685ec0e Mon Sep 17 00:00:00 2001 From: Rinjae Date: Tue, 28 Oct 2025 19:01:44 +0900 Subject: [PATCH] =?UTF-8?q?DB=20=EA=B2=80=EC=A6=9D=20profile=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/PortalDatasourceConfiguration.java | 10 +++++++++- .../apim/portal/spring/DatabaseSessionVerifier.java | 13 ++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/eactive/apim/portal/config/PortalDatasourceConfiguration.java b/src/main/java/com/eactive/apim/portal/config/PortalDatasourceConfiguration.java index f13c8bf..ab1ebd3 100644 --- a/src/main/java/com/eactive/apim/portal/config/PortalDatasourceConfiguration.java +++ b/src/main/java/com/eactive/apim/portal/config/PortalDatasourceConfiguration.java @@ -1,5 +1,6 @@ package com.eactive.apim.portal.config; +import com.eactive.apim.portal.spring.DatabaseSessionVerifier; import com.eactive.eai.data.jpa.BaseRepositoryImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -73,7 +74,14 @@ public class PortalDatasourceConfiguration extends BaseDatasourceConfiguration { throw new IllegalArgumentException("DB 접속을 위한 JNDI 또는 서버 접속 정보가 설정되어 있지 않음"); } - return createDataSource(emsProp); + DataSource dataSource = createDataSource(emsProp); + + if (env.matchesProfiles("db_check")) { + DatabaseSessionVerifier verifier = new DatabaseSessionVerifier(dataSource); + verifier.afterSingletonsInstantiated(); + } + + return dataSource; } @Primary diff --git a/src/main/java/com/eactive/apim/portal/spring/DatabaseSessionVerifier.java b/src/main/java/com/eactive/apim/portal/spring/DatabaseSessionVerifier.java index 34bfc6b..b95b22c 100644 --- a/src/main/java/com/eactive/apim/portal/spring/DatabaseSessionVerifier.java +++ b/src/main/java/com/eactive/apim/portal/spring/DatabaseSessionVerifier.java @@ -2,17 +2,18 @@ package com.eactive.apim.portal.spring; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.SmartInitializingSingleton; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import javax.sql.DataSource; import java.sql.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; -@Configuration -@Profile("db_check") +//@Configuration +//@Profile("db_check") @Slf4j public class DatabaseSessionVerifier implements SmartInitializingSingleton { private final DataSource emsDataSource; @@ -61,6 +62,8 @@ public class DatabaseSessionVerifier implements SmartInitializingSingleton { log.error("DB 세션 검증 실패", e); throw new RuntimeException(e); } + + throw new RuntimeException("db_check profile end."); }