Инъекции контекстного поля в запросе в синглтоны RESTEasy
При попытке встроить RESTEasy с одноэлементными ресурсами в OSGi (используя что-то похожее наResteasy-OSGi-расслоение), к моему удивлению, закачивается в поле@Context
UriInfo
был доступен и действителен по каждому запросу.
Копая глубже я нашел прокси магии иThreadLocal
вResteasyProviderFactory
, Все хорошо, но я не могу найти никаких ссылок на такое поведение в документах, ни в RESTEasy, ни в спецификации JAX-RS.
ВДжерси документы мы можем найти что-то вроде:
Исключение существует для конкретных объектов запроса, которые могут быть введены даже в поля конструктора или класса [ресурсов с одноэлементной областью - ОП]. Для этих объектов среда выполнения будет внедрять прокси, которые могут одновременно обрабатывать больше запросов. Эти объекты запросаHttpHeaders
, Request
, UriInfo
, SecurityContext
, Эти прокси могут быть введены с помощью@Context
аннотаций.
Как это выглядит в RESTEasy? Является ли текущая реализация стабильной или экспериментальной? Каков набор специфичных для запроса классов, которые могут быть внедрены в синглтоны?