Я использую Spring Boot 2.2.5.RELEASE и хотел бы разделить мои application.properties на отдельные файлы. В StackOverflow уже есть похожие вопросы, но ни один из них не подходит для настройки Jackson.
Мое текущее нерабочее решение:
root/
- application.properties (without Jackson configuration)
- jackson-configuration.properties (includes Jackson configuration)
Класс конфигурации Jackson:
@Configuration
@PropertySource("/jackson-configuration.properties")
public class JacksonConfiguration {
}
Обратите внимание, я пробовал разные способы указать путь, включая:
- "/ jackson-configuration.properties"
- "jackson-configuration.properties"
- "classpath: /jackson-configuration.properties"
- "classpath: jackson-configuration.properties"
Spring Boot, похоже, не использует конфигурацию. Если я скопирую его в application.properties - оно работает.
Содержимое jackson-configuration.properties:
spring.jackson.property-naming-strategy=SNAKE_CASE
spring.jackson.mapper.sort-properties-alphabetically=true
spring.jackson.deserialization.fail-on-unknown-properties=true
spring.jackson.parser.strict-duplicate-detection=true
spring.jackson.time-zone=Europe/Zurich
Мое приложение помечено @SpringBootApplication
, поэтому оно должно сканировать для дополнительных свойств.
/ edit
Я только что понял, что проблема заключается в тестировании, а не в самом производительном коде. Если я запускаю приложение, оно работает. Что не работает, так это тестирование с @JsonTest
. Я могу решить эту проблему, добавив следующую строку в мои тесты @ContextConfiguration(classes = {JacksonConfiguration.class})
. Но, в свою очередь, это приводит к тому, что аннотация @JsonComponent
перестает работать, но только для аннотированных классов @JsonTest
.