5

クラスを注入するモジュールの小さな例Foo:

@Module(complete = false, injects = { Foo.class })
class MyModule { }

class Foo {
    @Inject
    Foo(Bar bar, Baz baz) { }
}

( とが別のモジュールによって提供されているBarと仮定)Baz

私は今Foo、シングルトンになりたいです。

メソッドを追加して、@Providesそれに注釈を付けることができ@Singletonます...

@Module(complete = false, injects = { Foo.class })
class MyModule {
    @Provides @Singleton Foo provideFoo(Bar bar, Baz baz) {
        return new Foo(bar, baz);
    }
}

...しかし、そのコンストラクター呼び出しを自分で書かなければならないことは、注入フレームワークを使用する目的を無効にします。これを達成するためのより短い方法はありますか?

4

1 に答える 1