Я создаю приложение Java Spring Boot 2.1, которое использует Maven для добавления зависимости spring-boot-starter. Как написано в документации , это разрешает конфигурацию обратного входа по умолчанию. Эту конфигурацию можно найти свободно в этом репозитории и содержит синтаксис, который мне немного сложен для понимания.
1. Таинственный рывок
Я знаю, что свойства Spring устанавливаются с использованием следующего синтаксиса
$ {property.name:someDefaultValue}
Однако в файлах xml для конфигурации обратного входа всегда есть тире сразу после двоеточия. Почему это? например:
<имя свойства = "LOG_FILE" value = "$ {LOG_FILE: - $ {LOG_PATH: - $ {LOG_TEMP: - $ {java.io.tmpdir: - / tmp}}} / spring.log} />"
2. Изменяющиеся имена свойств
Мне также неясно, откуда все эти названия свойств. В документации упоминается заполнение наших application.properties или application.yml такими свойствами, как:
logging.file = /app/logs/mylog.log
Как и где свойство с именем logging.file
преобразуется в свойство с именем LOG_FILE
, используемое в xml-файле logback?
3. Недостающее имущество
В частности, это свойство не имеет эквивалентного свойства в application.properties (или .yml) для его настройки
$ {LOG_FILE_TOTAL_SIZE_CAP: -0}
Если я хочу изменить это свойство на какое-то другое значение, мне придется каким-то образом установить свойство LOG_FILE_TOTAL_SIZE_CAP. Как я могу сделать это, все еще используя исходную конфигурацию xml по умолчанию для logback, предоставляемую весенней загрузкой?
4. Мы застряли с добавками по умолчанию
Единственная логика appender в файлах XML logback:
И application.properties не позволяют изменить это. Хотя я должен признать, что это очень полезное значение по умолчанию, иногда оно не работает. Кажется чрезмерным, что нужно полностью перезаписать всю конфигурацию xml logback для одного небольшого изменения в appender или policy. Если бы я предоставил несколько пользовательских файлов конфигурации logback / xml на моем пути к классам, logback «слил бы» их или просто выбрал бы один и проигнорировал другие? Как работает перезапись / слияние, какой xml «выигрывает»?