1

service interface があるとしましょうcom.example.Service

テストのために、私は

src/test/resources/META-INF/services/com.example.Service

を含むファイル

com.example.sometest.MockServiceImpl

インターフェースをMockServiceImpl実装します。

これで、 aを実行ServiceLoader.load(Service.class)して結果を反復処理すると、 myMockServiceImplは常に再度インスタンス化されます。の javadoc にServiceLoaderは、キャッシュを維持していると記載されていますが、私のモック サービスはキャッシュされていないようです。

なぜそうなるのですか、どうすればそれServiceLoaderをキャッシュに入れることができますか?

4

1 に答える 1

2

API は、キャッシュが ServiceLoader インスタンスごとであることを意味していると思います。

于 2015-04-20T13:55:36.573 に答える