Как зарегистрировать ресурс в загрузчике классов во время выполнения? - PullRequest
1 голос
/ 07 мая 2020

Я нашел похожие вопросы о том, как добавить файл или класс, но в этом случае ресурс, который нужно зарегистрировать, будет создан во время выполнения и сохранен в памяти.

Итак, чтобы проиллюстрировать это, скажем Я хочу создать свойства конфигурации для некоторой библиотеки, которую я буду использовать. Прежде чем инициализировать эту библиотеку, я хотел бы создать ресурс свойств и поместить его в путь к классам, чтобы библиотека могла подобрать его и использовать.

Но в этом случае ресурс свойств не будет включен файловая система. Он должен быть в памяти, и когда библиотека пытается его загрузить, он должен обслуживаться непосредственно из памяти.

Думаю, я должен определить пользовательский ClassLoader и переопределить методы, связанные с извлечением ресурсов. Кроме того, я должен каким-то образом преобразовать свои данные в памяти в форму URL. Но я не знаю, как преобразовать что-то вроде этого в URL (я предполагаю, что это должно что-то делать с URLConnection).

Я знаю, что библиотека, вероятно, не сможет найдите этот ресурс, если этот специальный загрузчик классов не "виден" из этой библиотеки. Если он не является частью цепочки загрузчика классов.

...