Наше приложение определяет схему URL, разрешение которой зависит от контекста: содержание URL зависит от состояния выполняемой транзакции базы данных. Таким образом, для получения контента я не могу, например, открыть новое соединение с базой данных. Тем не менее, я не вижу способа получить внешний контекст из экземпляра URLStreamHandler
.
Документация также немного вводит в заблуждение: я проверил на сайте обработчика протокола java и указал (в разделе Реализация URLStreamHandlerFactory ), что класс URL будет принимать URLStreamHandlerFactory
экземпляр, но 1.5 JDK указывает, что URL принимает только URLStreamHandler
при создании URL.
Итак, мой вопрос: каков наилучший способ разрешения контекстно-зависимых URL? Есть ли лучший способ, чем иметь переменную класса ThreadLocal
в моей реализации URLStreamHandler
, которая устанавливается перед вызовами?