1
現在、Foo型のオブジェクトをBarに挿入するには、次の操作を行います。Jerseyで単純なオブジェクトを挿入するには、ファクトリを使用する必要がありますか?
class Bar {
@Inject
Foo field;
public Foo getField() { return field; }
}
ファクトリーを実装するコード:メインコンフィギュレーションで
public class Foo implements Factory<Foo> {
@Override
public Foo provide() {
return new Foo();
}
@Override
public void dispose(Foo f) {
}
}
コード:
final ResourceConfig rc = new ResourceConfig()
.packages("com.example")
.register(
new AbstractBinder() {
@Override
protected void configure() {
bindFactory(new FooFactory()).to(Foo.class).in(Singleton.class);
}
})
に注入する
クラス
私の質問は...従属注入のためにhk2を使用するJersey 2.0では、とにかくファクトリクラスを作成せずにオブジェクトを挿入するのですか?
クラスにパラメータを持つコンストラクタがあった場合はどうなりますか?これらのパラメータには@Injectも必要ですか? – oibe
は使用できません。フィールドにのみ@Injectを使用するか、インスタンスを次のようにバインドします:bind(new Bar( "test"))。to(Bar.class); –
一般に、より複雑な注入要求(例えば、補助噴射)のためには、InjectionResolverまたは工場を使用しなければならない。 –