1
私がしようとしているのは、正確にはthis questionのようなカスタム・ジャージーを@Context
としますが、Scalaではそうです。上記のポストからJersey 2.x @Contact/Dependency Injection in Scala
Javaの道:Scalaの方法をしようと
import javax.inject.Inject;
import javax.ws.rs.container.ContainerRequestContext;
import jetty.plugin.test.domain.MyObject;
import org.glassfish.hk2.api.Factory;
public class MyObjectFactory implements Factory<MyObject> {
private final ContainerRequestContext context;
@Inject
public MyObjectFactory(ContainerRequestContext context) {
this.context = context;
}
@Override
public MyObject provide() {
return (MyObject)context.getProperty("myObject");
}
@Override
public void dispose(MyObject t) {}
}
:@Inject
注釈を置く場所
class MyObjFactory(ctr: ContainerRequestContext) extends Factory[MyObj] {
private final val context: ContainerRequestContext = ctr
override def provide(): MyObj = context.getProperty("customObj").asInstanceOf[MyObj]
override def dispose(obj: MyObj): Unit = { }
}
ここでの問題は、私にはわかりませんさ。スカラの私の限られた理解は、クラス宣言のすべてがコンストラクタブロックであるため、MyObjectFactory
のJavaのようなコンストラクタメソッドに注釈を付けるのに@Inject
を使用することはできません。
私はちょうどこれについてすべて間違っていますか?