Szukałem wszędzie, ale nie wydaje się znaleźć jednoznacznej odpowiedzi ...Gdzie @Context obiekty pochodzą z
Jaki jest mechanizm, dzięki któremu serwer (GlassFish dla mojego problemu) wstrzykuje rzeczywiste objets które są opatrzone adnotacją @Context? Dokładniej, gdybym chciał napisać klasę, która zrobiła coś takiego:
@Path("/")
public class MyResource {
@GET
public String doSomething(@Context MyObject obj) {
// ...
}
}
, a następnie jak to zrobić? Gdzie znajduje się obiekt MyObject, kto to robi i jak?
Edit: Widziałem rzeczy, jak następuje:
Using @Context, @Provider and ContextResolver in JAX-RS
http://jersey.576304.n2.nabble.com/ContextResolver-confusion-td5654154.html
Jednak to nie pogodzić z tym, co widziałem, na przykład w konstruktorze org.neo4j.server.rest.web.RestfulGraphDatabase, który posiada następujący podpis:
public RestfulGraphDatabase(
@Context UriInfo uriInfo,
@Context Database database,
@Context InputFormat input,
@Context OutputFormat output,
@Context LeaseManager leaseManager)
Jeśli jesteś podklasy javax.ws.rs.core.Application, możesz zarejestrować dostawcę za pomocą 'this.getSingletons(). add (new MyObjectProvider());' w swoim konstruktorze aplikacji. – justin
Linki są zerwane. –
Wypróbuj te: https://jersey.java.net/nonav/apidocs/1.19/jersey/com/sun/jersey/spi/inject/SingletonTypeInjectableProvider.html https://jersey.java.net/nonav/apidocs /1.19/jersey/com/sun/jersey/spi/inject/PerRequestTypeInjectableProvider.html – elanh