Мое загрузочное приложение Spring (v2.1.1.RELEASE) упаковано с использованием следующего плагина и макета:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>my-service-${project.version}</finalName>
<mainClass>com.my.app.MainClass</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Я использую ниже сценарий запуска:
java -Dloader.path=/path/to/config/dir/ -jar my-service-1.0.jar
В одной из зависимостей моего приложения приведенный ниже код используется для чтения внешних файлов конфигурации xml (например, hbase-site.xml):
URL url = ClassLoader.getSystemResource(filename);
вот почему я пытаюсь сделать эти файлы доступными с помощью loader.path, но приложение по-прежнему не читает файлы, присутствующие в предоставленном каталоге. Я пропустил что-нибудь еще?
Уже упомянуто: Spring Boot: можно ли использовать внешние файлы application.properties в произвольных каталогах с толстой банкой?
Также попробуйте использовать @PropertySource("file:config.properties")
@Anil эти файлы являются файлами конфигурации xml, необходимыми для зависимостей. Мне нужно передать это извне, чтобы его можно было сделать доступным во время выполнения весенней загрузки. Я также обновил вопрос. Таким образом, в этом случае «PropertySource» не будет работать, поскольку он ожидает файл .properties или что-то подобное, которое имеет пару ключ-значение в ожидаемом формате.




Я думаю, что это должна быть проблема getSystemResource, попробуйте использовать getClassLoader().getResourceAsStream(path)
Вы проверили правильность структуры каталогов на основе этих документов, docs.spring.io/spring-boot/docs/current/reference/html/…