1
我正在做的是爲我的方法制作一個定製球衣@Context
,完全像this question,但是在Scala中。從上面的帖子Jersey 2.x @ Scala上的@Context/Dependency Injection
的Java方法:
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) {}
}
嘗試Scala的方式:
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 = { }
}
這裏的問題是,我不知道放在哪裏@Inject
註解。我對Scala的有限理解是類聲明中的所有內容都是構造塊,所以我不能使用@Inject
來註釋類似於Java的MyObjectFactory
構造函數方法。
我只是想說這全錯了嗎?