簡體   English   中英

Akka擴展的好處是什么?

[英]What are the benefits of Akka extensions?

我對Akka還是很陌生,並試圖了解如何處理依賴項注入。 我碰到了這個樣例 ,將我帶到了Akka擴展,現在我試圖了解它與簡單的靜態方法調用有何不同。 關於擴展的Akka教程部分中的示例如下:

public class CountExtensionImpl implements Extension {

    private final AtomicLong counter = new AtomicLong(0);

    public long increment() {
        return counter.incrementAndGet();
    }
}

public class CountExtension extends AbstractExtensionId<CountExtensionImpl> implements ExtensionIdProvider {

    public static final CountExtension EXTENSION = new CountExtension();

    private CountExtension() {

    }

    @Override
    public CountExtensionImpl createExtension(ExtendedActorSystem system) {
        return new CountExtensionImpl();
    }

    @Override
    public ExtensionId<? extends Extension> lookup() {
        return EXTENSION;
    }
}

public class MyActor extends UntypedActor{


    @Override
    public void onReceive(Object message) throws Exception {
        System.out.println(CountExtension.EXTENSION.get(getContext().system()).increment());

    }
}

但是我不明白簡單單例或靜態方法的優點是什么? 例如

public class MyActor extends UntypedActor{

    @Override
    public void onReceive(Object message) throws Exception {
        Counter.increment();

    }
}

Akka擴展綁定到ActorSystem,因此是每個系統一個單例,而不是全局單個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM