В Java вы можете загружать все виды ресурсов, используя один и тот же API, но с разными протоколами URL:
file:///tmp.txt
http://127.0.0.1:8080/a.properties
jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
Это прекрасно отделяет фактическую загрузку ресурса от приложения, которому нужен ресурс, и поскольку URL-адрес является просто строкой, загрузка ресурса также очень легко настраивается.
Есть ли протокол для загрузки ресурсов с использованием текущего загрузчика классов?
Это похоже на протокол Jar, за исключением того, что мне не нужно знать, из какого файла JAR или папки классов поступает ресурс.
Конечно, я могу сделать это, используя Class.getResourceAsStream("a.xml")
, но это потребует от меня использования другого API и, следовательно, изменений в существующем коде. Я хочу использовать это во всех местах, где я уже могу указать URL-адрес ресурса, просто обновив файл свойств.