Используя ниже, файл внутри ресурсов с именем sample.xml
успешно читается с getResourceAsStream
.
@Value("${sample}")
private String sample;
InputStream is = this.getClass().getClassLoader().getResourceAsStream(sample);
ресурсы / application.properties
sample=sample.xml
Однако после экстернализации application.properties
и sample.xml
в консул файл sample.xml больше не найден.
Также в журнале печатается только то, что обнаружено application.properties, а не sample.xml, который также присутствует в myapp как myapp/application/sample.xml
b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='consul', propertySources=[ConsulFilesPropertySource {name='myapp/application/application.properties'}]}
Таким образом, остается только скачать файл с консула, а затем открыть поток ввода. Разве мы не можем продолжать использовать getResourceAsStream
в первом примере, используя внешние файлы для консультации, например, чтение из каталога s resources
?
http://${spring.cloud.consul.host}:${spring.cloud.consul.port}/v1/kv/${spring.cloud.consul.config.prefix}/sample.xml?raw=true&xml
bootstrap.yml
spring:
application:
name: myapp
cloud:
consul:
config:
enabled: true
format: files
fail-fast: true
prefix: myapp/application
host: localhost
port: 8500