У меня есть параметр конфигурации » myconfig.defaultSize», значение которого в приложении определено, например, как «10MB».файл свойств.
С другой стороны, у меня есть класс @Component с аннотацией @ConfigurationProperties, отображающей эти параметры конфигурации, следующим образом.
@Component
@ConfigurationProperties(prefix="myconfig")
public class StorageServiceProperties {
private Long defaultSize;
//...getters and setters
}
Итак, как я могу применить метод для преобразования строкового значения в Long?
Такой универсальный преобразователь нельзя применять на основе свойств. Вы можете зарегистрировать преобразователь из String в Long, но он будет вызываться для каждого такого случая (любое свойство типа Long в основном).
Цель
@ConfigurationProperties
заключается в сопоставленииEnvironment
с более высокого уровня структуры данных. Возможно, вы могли бы сделать это там?Если вы посмотрите на составную поддержку в Spring Boot, мы сохраняем строковое значение и используем
@ConfigurationProperties
объект для созданияMultipartConfigElement
, который отвечает за синтаксический анализ. Таким образом, можно указать эти специальные значения в коде и конфигурации.