Чтение this и that Я мог бы легко настроить мой environment в веб-приложении.Индивидуальное управление собственностью с весной 4.x
Моя настройка довольно проста: у меня есть файлы свойств, упакованные в мой файл для развертывания войны, и я хотел бы иметь локальный файл свойств на моей машине веб-сервера, который переопределит эти свойства в случае перекрытия. Для этого я реализовал интерфейс ApplicationContextInitializer, загрузил мой файл локальных свойств и использовал метод addFirst моего environment. Это заставило мой локальный файл переопределить файлы свойств, упакованные в мою войну.
Это сработало отлично. Теперь я хотел бы сделать то же самое в java-spring process (а не в веб-приложении). Как я могу это сделать?
Лучшее решение, которое я нашел до сих пор, заключается в том, чтобы добавить метод к моему классу configuration и аннотировать его аннотацией @PostConstruct. Этот метод делает именно то, что инициализирует метод ApplicationContextInitializer.
Это решение не удовлетворяет моим потребностям, так как у меня есть некоторые компоненты, которые являются loaded conditionally, и это (код conditional annotation) происходит до моего метода @postConstruct (что не хорошо, поскольку условная загрузка основана на моих свойствах).
Сначала я не использую propertiesConfigurer управлять моим свойства, я использую Spring Environment. Во-вторых, переопределяющий файл не загружается из пути к классам, а из фиксированного пути в файловой системе. – forhas