@Service 빠지면 이벤트 못 받는다? #shorts #SAP #CAPforJava
Moderator
· 조회 2
CAP Java Service란?
CAP for Java에서 서비스 로직은 EventHandler를 구현한 컴포넌트 클래스에 작성합니다. 핵심은 @ServiceName으로 대상 서비스를 정확히 지정하는 것입니다. 이 어노테이션이 없으면 이벤트가 핸들러로 라우팅되지 않습니다.
@Service 패턴 기본 구조
@Component
@ServiceName(CatalogService_.CDS_NAME)
public class CatalogServiceHandler
implements EventHandler {
@On(event = CqnService.EVENT_READ,
entity = Books_.CDS_NAME)
public void onRead(
CdsReadEventContext ctx) {
// 조회 로직
}
}
핸들러 어노테이션 실행 순서
@Before // 검증, 기본값 설정
@On // 실제 처리 로직
@After // 결과 변환, 감사 로그
실행 순서는 @Before → @On → @After. @On이 없으면 CAP이 기본 CRUD를 자동 처리합니다.
@ServiceName 누락 시 증상
@ServiceName이 없거나 이름이 틀리면 이벤트가 핸들러로 전달되지 않습니다. 로그에 오류가 없어도 로직이 실행되지 않으므로 반드시 확인하세요.
핵심 한 줄
@ServiceName + EventHandler 구현 없이는 CAP Java 핸들러가 절대 작동하지 않는다.