1

次のリンクでは、サービス インターフェイスと start() および stop() メソッドを使用して、Guice でモジュールの初期化と破棄を処理する方法について説明します。

http://code.google.com/p/google-guice/wiki/ModulesShouldBeFastAndSideEffectFree

ドキュメントでは、サービスの作成はクライアント コードでは次のようになると説明されています。

public static void main(String[] args) throws Exception {
    Injector injector = Guice.createInjector(
        new DatabaseModule(),
        new WebserverModule(),
        ...
    );

    Service databaseConnectionPool = injector.getInstance(
        Key.get(Service.class, DatabaseService.class));
    databaseConnectionPool.start();
    addShutdownHook(databaseConnectionPool);

    Service webserver = injector.getInstance(
        Key.get(Service.class, WebserverService.class));
    webserver.start();
    addShutdownHook(webserver);
}

ただし、Concrete Service クラスのサンプル実装はリストされていません。誰でも私に提供できますか?少なくとも start() と stop() に含まれるもののサンプル実装。

4

1 に答える 1

2

Guavaサービスインターフェースとその抽象的な実装を見てください。私は、インターフェース(およびそれに類似した他のインターフェース)が一般的にそのドキュメントが参照しているものであると確信しています。とにかくそれは基本的なインフラストラクチャです。

サービスが起動またはシャットダウンしたときに実際に何をする必要があるかについては、サービス自体によって異なります。この例では、Webサーバーサービスは、開始時にポートのリッスンを開始し、停止するとリッスンを停止する場合があります。接続プールは、開始時にいくつかの接続をフェッチする可能性があり、停止時に保持している接続を解放する必要があります。

于 2011-10-05T00:09:57.577 に答える