Guice がモジュールの @Provider メソッドを無視しているようです。
次のようなクラス MyModule があります。
public class MyModule extends AbstractModule {
protected void configure() {
bindInterceptor(Matchers.any(), Matchers.annotatedWith(Timed.class), new GuiceEnabledLoggingInterceptor());
bind(OneClass.class).to(OneClassImpl.class);
// And more binding lines...
}
@Provides
public AnotherClassInApi provideMyClass() {
return AnotherClassInApi.getInstance();
}
// And more @Provides methods
}
主な方法は
public static void main(String[] args){
ConfigHandler.getInstance().loadConfigWhenNotRunningInsideMicrocontainer();
Injector INJECTOR = Guice.createInjector(new MyModule());
// ...
}
プロジェクトの他の部分には、AnotherClassInApi クラスがあります。これは、非常に標準的なシングルトンと 1 つのメソッドです。
public class AnotherClassInApi {
private static final AnotherClassInApi INSTANCE = new AnotherClassInApi();
private AnotherClassInApi() { }
// ... more methods
public static AnotherClassInApi getInstance() {
return INSTANCE;
}
}
まあ、AnotherClassInApi オブジェクトに対するすべてのリクエストを getInstance() メソッドに効果的にバインドする必要があることは理解していますが、機能しません。面白いことに、デバッグ中に @Provide メソッドのブレークポイントに到達することはありませんが、configure メソッドのブレークポイントに到達します。guice がプロバイダーの注釈を無視しているようです。Guice ガイドが @Provider について述べていることを正確にフォローしていると思うので、すでに立ち往生しています。
ぐぐってみましたが、似たようなものは見つかりませんでした。どんな助けでも大歓迎です。
ありがとう!