Я хочу добавить свой собственный файл file.yml / properties в свой класс ресурсов рядом с application.yml и bootstrap .yml. Например, private.yml.
Этот файл должен содержать некоторые значения, которые я хочу использовать в application.yml и bootstrap .yml,
, которые я добавил в свою основную загрузочную пружину. Класс этой аннотации: @ PropertySource ("classpath: private.properties")
И в application.yml:
spring:
datasource:
username: root
password: ${private-db-pass}
Где значение $ {private-db- pass} из private.yml и прекрасно работает.
Но когда я пытаюсь добавить значение из файла private.yml в application.yml для настройки обратного входа:
logging:
file:
path: ${private-log-path}
Я получаю это ошибка:
java.lang.IllegalArgumentException: Could not resolve placeholder 'private-log-path' in value "${private-log-path}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:178) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.resolveNestedPlaceholders(AbstractPropertyResolver.java:227) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:88) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:62) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.core.env.AbstractEnvironment.getProperty(AbstractEnvironment.java:535) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
at org.springframework.boot.logging.LogFile.getLogFileProperty(LogFile.java:141) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
at org.springframework.boot.logging.LogFile.get(LogFile.java:132) ~[spring-boot-2.2.5.RELEASE.jar:2.2.5.RELEASE]
(...)
Это содержимое файла private.properties:
private-db-pass=dbTestPassword
private-log-path=c:/logs/
Когда у меня есть этот путь непосредственно в application.properties, он отлично работает:
logging:
file:
path: c:/logs/
Возможно, logback нужно это значение, прежде чем оно будет добавлено в контекст весны.
Вопрос: могу ли я сделать это таким образом, чтобы работать нормально? Или я должен "обойти это"?
(извините, мой engli sh не идеален)