Was ich versuche, ist eine benutzerdefinierte Trikot @Context
für meine Methoden, genau wie this question, aber in Scala.Jersey 2.x @ Context/Dependency Injection in Scala
Java Art und Weise aus der obigen Beitrag:
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) {}
}
den Weg Scala Versuch:
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 = { }
}
Das Problem hier ist, ich weiß nicht, wo die @Inject
Anmerkung zu setzen. Mein begrenztes Verständnis von Scala ist, dass alles in der Klassendeklaration ein Konstruktorblock ist, so dass ich @Inject
nicht verwenden kann, um die MyObjectFactory
Konstruktormethode wie in Java zu kommentieren.
Gehe ich gerade falsch?