44.2. 메시지 인터페이스 구현


44.2.1. 사용자 정의 메시지 구현 방법

예 44.2. “사용자 정의 메시지 구현” DefaultMessage 클래스를 확장하여 메시지를 구현하는 방법을 간략하게 설명합니다.

예 44.2. 사용자 정의 메시지 구현

import org.apache.camel.Exchange;
import org.apache.camel.impl.DefaultMessage;

public class CustomMessage extends DefaultMessage { 1

    public CustomMessage() { 2
        // Create message with default properties...
    }

    @Override
    public String toString() { 3
        // Return a stringified message...
    }

    @Override
    public CustomMessage newInstance() { 4
        return new CustomMessage( ... );
    }

    @Override
    protected Object createBody() { 5
        // Return message body (lazy creation).
    }

    @Override
    protected void populateInitialHeaders(Map<String, Object> map) { 6
        // Initialize headers from underlying message (lazy creation).
    }

    @Override
    protected void populateInitialAttachments(Map<String, DataHandler> map) { 7
        // Initialize attachments from underlying message (lazy creation).
    }
}
1
org.apache.camel.impl.DefaultMessage 클래스를 확장하여 사용자 정의 메시지 클래스인 CustomMessage 를 구현합니다.
2
일반적으로 기본 속성이 있는 메시지를 생성하는 기본 생성자가 필요합니다.
3
메시지 문자열을 사용자 지정하려면 toString() 메서드를 재정의합니다.
4
newInstance() 메서드는 MessageSupport.copy() 메서드 내부에서 호출됩니다. newInstance() 메서드의 사용자 지정은 현재 메시지 인스턴스의 모든 사용자 지정 속성을 새 메시지 인스턴스로 복사하는 데 중점을 두어야 합니다. MessageSupport.copy() 메서드는 copyFrom() 을 호출하여 일반 메시지 속성을 복사합니다.
5
createBody() 메서드는 MessageSupport.getBody() 메서드와 함께 작동하여 메시지 본문에 대한 지연 액세스를 구현합니다. 기본적으로 메시지 본문은 null 입니다. 이는 애플리케이션 코드가 ( getBody()() 호출) 본문에 액세스하려고 할 때만 본문을 생성해야 합니다. MessageSupport.getBody() 는 메시지 본문에 처음 액세스하면 createBody() 를 자동으로 호출합니다.
6
populateInitialHeaders() 메서드는 헤더 getter 및 setter 메서드와 함께 작동하여 메시지 헤더에 대한 지연 액세스를 구현합니다. 이 메서드는 메시지를 구문 분석하여 메시지 헤더를 추출하고 해시 맵에 삽입합니다. 사용자가 처음으로 헤더(또는 헤더)에 액세스하려고 할 때( getHeaders(), getHeaders(), setHeaders()또는 setHeaders() 를 호출하여) populateInitialHeaders() 메서드가 자동으로 호출됩니다.
7
populateInitialAttachments() 메서드는 attachment getter 및 setter 방법과 함께 작동하여 첨부 파일에 대한 지연 액세스를 구현합니다. 이 방법은 메시지 첨부 파일을 추출하여 해시 맵에 삽입합니다. populateInitialAttachments() 메서드는 사용자가 getAttachment(), getAttachments() , getAttachmentNames () 또는 addAttachment() 를 호출하여 처음으로 첨부(또는 첨부 파일)에 액세스하려고 할 때 자동으로 호출됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.