diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md index 2e3aaf5..d526651 100644 --- a/.agents/AGENTS.md +++ b/.agents/AGENTS.md @@ -5,7 +5,7 @@ ## 개발 가이드라인 * 패키지명은 `controller` 대신 `presentation`을 사용합니다. -* MapStruct 사용 시, 테스트 환경 에러를 방지하기 위해 생성자(`new ...Impl()`) 대신 `Mappers.getMapper(인터페이스명.class)` 방식으로 인스턴스를 가져옵니다. +* MapStruct 사용 시, Spring DI를 활용하여 의존성 주입(`private final Converter converter;`)을 받는 방식을 권장합니다. (단위 테스트 시에는 `@MockBean` 또는 직접 구현체를 주입하여 테스트) ## 명심해야 할 규칙 추가란 * 이모지는 무조건 넣지 않는다 diff --git a/dap-tool-core/src/main/java/io/shinhanlife/dap/common/util/ToolScaffolder.java b/dap-tool-core/src/main/java/io/shinhanlife/dap/common/util/ToolScaffolder.java index f5537ef..23e492a 100644 --- a/dap-tool-core/src/main/java/io/shinhanlife/dap/common/util/ToolScaffolder.java +++ b/dap-tool-core/src/main/java/io/shinhanlife/dap/common/util/ToolScaffolder.java @@ -182,7 +182,6 @@ public class ToolScaffolder { import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.util.Map; - import org.mapstruct.factory.Mappers; import %s.converter.%sLegacyConverter; import %s.legacy.%sLegacyReq; @@ -210,7 +209,7 @@ public class ToolScaffolder { public class %sService { private final AxhubMciComponent mci; - private final %sLegacyConverter converter = Mappers.getMapper(%sLegacyConverter.class); + private final %sLegacyConverter converter; @McpFunction( displayName = "%s 툴", @@ -255,7 +254,7 @@ public class ToolScaffolder { createDate, author, routingType, group.toLowerCase(), baseName, - baseName, baseName, + baseName, baseName, toolName, description, description + " 해줘.", interfaceId, register, baseName, baseName, @@ -272,7 +271,6 @@ public class ToolScaffolder { import %s.dto.%sRes; import %s.converter.%sLegacyConverter; import org.springframework.stereotype.Service; - import org.mapstruct.factory.Mappers; /** * @package %s.service @@ -293,9 +291,10 @@ public class ToolScaffolder { routingType = "%s", categoryKey = "%s" ) + @RequiredArgsConstructor public class %sService extends AbstractMcpToolService { - private final %sLegacyConverter converter = Mappers.getMapper(%sLegacyConverter.class); + private final %sLegacyConverter converter; @McpFunction( displayName = "%s 툴", @@ -324,7 +323,7 @@ public class ToolScaffolder { createDate, author, routingType, group.toLowerCase(), baseName, - baseName, baseName, + baseName, baseName, toolName, description, description + " 해줘.", interfaceId, register, baseName, baseName,