Dami ローカル プロシージャ呼び出しフレームワーク (デカップリングに重点を置いた)、v0.24 がリリースされました

ダミ、のために設計されましたローカルマルチモジュール間のコミュニケーションデカップリングそして設計(特に未知のモジュール、分離モジュール、ドメインモジュール)。依存関係がゼロで、特に DDD に適しています。

特徴

バスと RPC の概念を組み合わせることで、イベント配信、インターフェイス呼び出し、非同期応答に使用できます。

  • トランザクションの実行をサポート (同期配信、例外透過送信)
  • イベント識別子とインターセプターをサポート (追跡に便利)
  • リスナーのソートと添付ファイルの配信をサポート (複数のモニターが相互に連携可能)
  • Bus と API の 2 つのエクスペリエンス スタイルをサポート

一般的なEventBusやApiBeanとの違い

イベントバス アピビーン ダミのファクトシート
放送 持っている 持っている なし 送信 + リッスン
と API モード
答え 持っている なし 持っている 送信して応答を待つ (sendAndResponse) + リッスン (listen) + 返信 (reply)
と API モード
折り返し電話 はい+ なし 持っている- コールバックを送信して待機 (sendAndCallback) + リッスン (listen) + 返信 (reply)
カップリング 弱- 弱+ 強い++

クラスローダーの分離が含まれる場合: メインプログラムではコンパイル済みとしてマークし、他のモジュールではオプションとしてマークしてください。

デカップリングとは何ですか?

@DamiTopic("event.user")
public interface EventUserService {
    
    
    User getUser(long userId); 
}

@DamiTopic("event.user")
public class EventUserServiceImpl {
    
     //无耦合实现了 EventUserService 接口
    public User getUser(long userId) {
    
    
        return new User(userId);
    }
}

@EnableAutoConfiguration
@SpringBootTest(classes = Demo91.class)
@ComponentScan("features.demo91_springboot")
public class Demo91 {
    
    
    @Autowired
    EventUserService eventUserService;

    @Test
    public void main(){
    
    
        User user = eventUserService.getUser(99);
        assert user.getUserId() == 99;
    }
}

今回は何が更新されたのでしょうか?

  • Payload::reply は成功しても失敗しても戻り値を増やします。
  • Dami.api() のリスナー パラメーターの数は、送信側のパラメーターの数と若干異なる場合があります (Payload パラメーターの追加など)。

プロジェクトアドレス

  • https://gitee.com/noear/dami
  • https://github.com/noear/dami

Guess you like

Origin blog.csdn.net/cwzb/article/details/132873951