支付宝Sofaフレームワーク簡明ノート


Sofaフレームワークの概要
SOFAはService Oriented Fabric Architectureの分散アーキテクチャソリューションであり、RPC、メッセージ、モニタリング、サービスガバナンスを含むアプリケーションミドルウェアです.
開発フレームワークの構成
1つの標準的なsofaエンジニアリングは、上から下へ、テスト層、プレゼンテーション層、ビジネス層、コアレルム層、および汎用層に分けることができ、テスト層から汎用層への階層依存性がある.一般に,下層モジュールが上層モジュールのコードに依存すると,ループ依存が発生し,エンジニアリングエラーが発生する.汎用レイヤでは、データ・アクセス・レイヤ、サービス・リファレンス、jarパッケージの適用に分けることもできます.
sofaモジュールとjarパッケージの違い
1、SOFAモジュールのMETA-INFディレクトリの下に、MANIFESTがある.SOFAモジュールの名前とモジュール間の依存関係を定義したMFファイル.2、1つのSOFAモジュールのMETA-INF/springディレクトリの下に、任意の多くのSpringプロファイルを配置することができ、これらのプロファイルは、SOFAが自定的にそれらを本モジュールのSpringプロファイルとしてロードする.
サービスの公開と参照
sofa開発を使用する場合、最も多く使用されるのはsofaサービスのリファレンスとパブリケーションです.具体的には、サービスパブリケーションとリファレンスの流れは以下の通りです.
1、XML
"sampleService" class="com.alipay.sofa.runtime.test.service.SampleServiceImpl">

interface="com.alipay.sofa.runtime.test.service.SampleService" ref="sampleService" />

interface="com.alipay.sofa.runtime.test.service.SampleService" id="sampleServiceRef" />

2、Annotation
@SofaService
public class SampleImpl implements SampleInterface {
   public void test() {

   }
}
@SofaService(interfaceType=SampleInterface.class)
public class SampleImpl implements SampleInterface, Serializable {
   public void test() {

   }
}

public class SampleServiceRef {
    @SofaReference
    private SampleService sampleService;
}
public class SampleServiceRef {
    @SofaReference(interfaceType=SampleService.class)
    private SampleService sampleService;
}

3、 API

interface="com.alipay.sofa.runtime.test.service.SampleService" ref="sampleService1" unique-id="ss1">

interface="com.alipay.sofa.runtime.test.service.SampleService" ref="sampleService2" unique-id="ss2">


interface="com.alipay.sofa.runtime.test.service.SampleService" id="sampleService" unique-id="ss1">