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 <noreply@anthropic.com>
This commit is contained in:
zio 2026-07-12 21:51:24 +09:00
parent 276293ebe7
commit c595560d82
3 changed files with 6 additions and 5 deletions

View File

@ -21,7 +21,7 @@ import java.util.Map;
* - DELETE /api/admin/messages/{code} 삭제(locale 옵션) [ADMIN] * - DELETE /api/admin/messages/{code} 삭제(locale 옵션) [ADMIN]
* - POST /api/messages/{code}/render {params:{...}} 치환 문자열 [인증] * - POST /api/messages/{code}/render {params:{...}} 치환 문자열 [인증]
*/ */
@RestController @RestController("sysMessageController")
public class MessageController { public class MessageController {
private final MessageService service; private final MessageService service;

View File

@ -13,7 +13,7 @@ import java.util.regex.Pattern;
* <p>렌더: template {key} params[key] 치환한다. 파라미터가 없으면 원본 {key} 유지하고(안전), * <p>렌더: template {key} params[key] 치환한다. 파라미터가 없으면 원본 {key} 유지하고(안전),
* 값이 null 이면 문자열로 치환한다. 알림/이메일(W10)·통지에서 {@link #render}/{@link #renderTemplate} 재사용. * 값이 null 이면 문자열로 치환한다. 알림/이메일(W10)·통지에서 {@link #render}/{@link #renderTemplate} 재사용.
*/ */
@Service @Service("sysMessageService")
public class MessageService { public class MessageService {
/** {key} — 영문/숫자/밑줄/점만 허용(중괄호 오탐 방지). */ /** {key} — 영문/숫자/밑줄/점만 허용(중괄호 오탐 방지). */
@ -21,9 +21,9 @@ public class MessageService {
private static final String DEFAULT_TENANT = "KINTEX"; private static final String DEFAULT_TENANT = "KINTEX";
private static final String DEFAULT_LOCALE = "ko"; 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; this.mapper = mapper;
} }

View File

@ -7,9 +7,10 @@ import java.util.Map;
/** /**
* 메시지 템플릿 매퍼(sys_message). 필터는 null-safe(값이 없으면 조건 무시) &lt;script&gt; 미사용. * 메시지 템플릿 매퍼(sys_message). 필터는 null-safe(값이 없으면 조건 무시) &lt;script&gt; 미사용.
* <p>클래스명 Sys* 접두 기존 {@code work.message.MessageMapper} MyBatis 매퍼 빈명 충돌 회피.
*/ */
@Mapper @Mapper
public interface MessageMapper { public interface SysMessageMapper {
@Select("SELECT msg_code AS \"msgCode\", locale, category, title, template, use_yn AS \"useYn\", " @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 " + "to_char(updated_at,'YYYY-MM-DD\"T\"HH24:MI:SS') AS \"updatedAt\" FROM sys_message "