JavaのServiceLoaderでは、これらのエントリがJARファイル内に存在する必要があります。IDE内で、ユニットテストのために実行時にこれらのサービスエントリをプログラムで追加する方法はありますか?特にJARがまだビルドされていない場合。
2404 次
1 に答える
7
JARファイルに集中しすぎないようにしてください。これらはサービスをカプセル化するための推奨される方法ですが、必須ではありません。重要なのは、実際ClassLoader.getResources(String)
にはString
-argが事実上。になる場所("META-INF/services/" + serviceClass.getName())
です。覚えておくべきもう1つの情報ServiceLoader.load(Class)
は、コンテキストクラスローダーを利用することです(もちろん、を利用することもできますServiceLoader.load(Class, ClassLoader)
)。だから...あなたが本当にする必要があるのは、クラスパスを操作するか、ServiceLoader
幸せになるような方法でコンテキストクラスローダーを構成することです。
于 2010-06-30T19:17:51.213 に答える