From c595560d82e93bffcf087d5b92dae321d77d1619 Mon Sep 17 00:00:00 2001 From: zio Date: Sun, 12 Jul 2026 21:51:24 +0900 Subject: [PATCH] fix(system/message): avoid bean-name collision with existing work/message module Existing com.zioinfo.kintex.work.message.{MessageController,MessageService,MessageMapper} share default bean names with the new system/message beans, causing ConflictingBeanDefinitionException at startup (health-check fail -> rollback). - rename mapper interface MessageMapper -> SysMessageMapper (MyBatis bean name can't be overridden by annotation value) - explicit bean names: @RestController("sysMessageController"), @Service("sysMessageService") No request-path change (new: /api/admin/messages, /api/messages/{code}/render). Co-Authored-By: Claude Opus 4.8 --- .../zioinfo/kintex/system/message/MessageController.java | 2 +- .../com/zioinfo/kintex/system/message/MessageService.java | 6 +++--- .../message/{MessageMapper.java => SysMessageMapper.java} | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) rename src/backend/src/main/java/com/zioinfo/kintex/system/message/{MessageMapper.java => SysMessageMapper.java} (94%) diff --git a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageController.java b/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageController.java index 4f1782a..8dc52de 100644 --- a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageController.java +++ b/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageController.java @@ -21,7 +21,7 @@ import java.util.Map; * - DELETE /api/admin/messages/{code} 삭제(locale 옵션) [ADMIN] * - POST /api/messages/{code}/render {params:{...}} → 치환 문자열 [인증] */ -@RestController +@RestController("sysMessageController") public class MessageController { private final MessageService service; diff --git a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageService.java b/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageService.java index d833292..9091515 100644 --- a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageService.java +++ b/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageService.java @@ -13,7 +13,7 @@ import java.util.regex.Pattern; *

렌더: template 의 {key} 를 params[key] 로 치환한다. 파라미터가 없으면 원본 {key} 를 유지하고(안전), * 값이 null 이면 빈 문자열로 치환한다. 알림/이메일(W10)·통지에서 {@link #render}/{@link #renderTemplate} 재사용. */ -@Service +@Service("sysMessageService") public class MessageService { /** {key} — 영문/숫자/밑줄/점만 허용(중괄호 오탐 방지). */ @@ -21,9 +21,9 @@ public class MessageService { private static final String DEFAULT_TENANT = "KINTEX"; private static final String DEFAULT_LOCALE = "ko"; - private final MessageMapper mapper; + private final SysMessageMapper mapper; - public MessageService(MessageMapper mapper) { + public MessageService(SysMessageMapper mapper) { this.mapper = mapper; } diff --git a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageMapper.java b/src/backend/src/main/java/com/zioinfo/kintex/system/message/SysMessageMapper.java similarity index 94% rename from src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageMapper.java rename to src/backend/src/main/java/com/zioinfo/kintex/system/message/SysMessageMapper.java index d670534..5fea5fe 100644 --- a/src/backend/src/main/java/com/zioinfo/kintex/system/message/MessageMapper.java +++ b/src/backend/src/main/java/com/zioinfo/kintex/system/message/SysMessageMapper.java @@ -7,9 +7,10 @@ import java.util.Map; /** * 메시지 템플릿 매퍼(sys_message). 필터는 null-safe(값이 없으면 조건 무시) — <script> 미사용. + *

클래스명 Sys* 접두 — 기존 {@code work.message.MessageMapper} 와 MyBatis 매퍼 빈명 충돌 회피. */ @Mapper -public interface MessageMapper { +public interface SysMessageMapper { @Select("SELECT msg_code AS \"msgCode\", locale, category, title, template, use_yn AS \"useYn\", " + "to_char(updated_at,'YYYY-MM-DD\"T\"HH24:MI:SS') AS \"updatedAt\" FROM sys_message "