Anforderungsspezifische Kontextfeldinjektionen in RESTEasy-Singletons
Während Sie versuchen, RESTEasy mit Singleton-Ressourcen in OSGi einzubetten (mit etwas ähnlichem wie resteasy-osgi-bundle), zu meiner Überraschung feldinjiziert@Context
UriInfo
war bei jeder Anfrage verfügbar und gültig.
Digging tiefer fand ich Proxy-Magie undThreadLocal
imResteasyProviderFactory
. Alles schön und gut, aber ich kann keinen Hinweis auf ein solches Verhalten in Dokumenten finden, weder in RESTEasys noch in JAX-RS-Spezifikationen.
ImJersey docs wir können so etwas finden wie:
Die Ausnahme besteht für bestimmte Anforderungsobjekte, die sogar in Konstruktor- oder Klassenfelder eingefügt werden können der Ressourcen mit Singleton-Gültigkeitsbereich - OP]. Für diese Objekte werden von der Laufzeit Proxys eingefügt, die gleichzeitig mehr Anforderungen verarbeiten können. Diese Anfrageobjekte sindHttpHeaders
, Request
, UriInfo
, SecurityContext
. Diese Proxys können mit dem @ injiziert werd@Context
annotation.
Wie sieht es in RESTEasy aus? Ist die aktuelle Implementierung stabil oder experimentell? Welche anforderungsspezifischen Klassen können in Singletons injiziert werden?