44.2. Message インターフェースの実装
カスタムメッセージの実装方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
例44.2「カスタムメッセージの実装」 は、DefaultMessage クラスを拡張してメッセージを実装する方法を概説します。
例44.2 カスタムメッセージの実装
- 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
- populate
InitialHeaders()メソッドはヘッダー getter および setter メソッドと連携して機能し、メッセージヘッダーへの遅延アクセスを実装します。このメソッドは、メッセージヘッダーを抽出し、ハッシュマップに挿入するメッセージを解析し、をマップします。ユーザーが(getHeader()、getHeaders()、set自動的に呼び出されます。Header()、またはで)初めてヘッダー(またはヘッダー)setHeaders()を呼び出すことにアクセスしようとすると、populateInitialHeaders()メソッドが - 7
- populate
InitialAttachments()メソッドは添付の getter および setter メソッドと連携して機能し、アタッチメントへの遅延アクセスを実装します。このメソッドは、メッセージのアタッチメントを抽出し、ハッシュマップmapに挿入します。populateInitialAttachments()メソッドは、getAttachment()、getAttachments()、getAttachmentNames()、またはaddAttachment()を呼び出して、ユーザーが初めて添付ファイルにアクセスしようとすると、自動的に呼び出されます。