vertx eventbusでPOJO Codecを使用することを確認


vertxのeventbusを書き込むときにBufferやJsonObjectタイプではなくPOJOクラスを作成し、タイプが安全な方法でメッセージを送信する場合はCodecを使用します.
送信される情報が多様化するため,タイプの定性を考慮せざるを得ないため,POJO CODECを用いる方式を考えたが,javadocでは以下のような内容が言及されている.
うん.仕方なくJsonObjectで塗るしかないですか?
「このようなインスタンスは、他のスレッドで同時に使用できるため、スレッドを安全にする必要があります.」(同じメモリアドレスを参照しているので、Thread-Safe…)
https://vertx.io/docs/apidocs/io/vertx/core/eventbus/MessageCodec.html
代替案を提案した場合(わずかなタイプの推論でも容易に実現でき、メンテナンス性も優れています)、
  • 転送前に用意されたデータはDTOクラスを指し、転送前にDTOをgson(com.google.gson.gson)ライブラリのjsonに変換し、eventbusを転送する際に追加される可能性のあるフィールドは厳格なルールを制定して記録される.
  • eventbusアドレスの対応する部分を定数化します.sendとconsumerpairは追跡しやすくなりました.
  • public class Constants {
    	public static final EB_SAMPLE_ADDR = "sample.addr.service";
        ...
    }
    また、POJO符号化デコーダを使用する場合、以下のリンクで説明する方法で実現すると、簡潔になるはずです...
    https://medium.com/@levidoro/vert-x-event-bus-send-any-object-with-generic-codec-t-a0bc1feab13a