Ошибка разрешения заполнителей в приложении Springboot с сервером конфигурации
Я настраиваю сервер конфигурации для использования в приложении Springboot. Приложение было недавно перенесено из Spring в Springboot, поэтому большинство свойств используются в файлах applicationContext.xml.
Пример:
<bean id="rabbitConnectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
<property name="address" value="${rabbitmq.address}"/>
</bean>
Это вызывает исключение IllegalArgumentException: не удалось разрешить заполнитель
У меня также есть мой файл свойств конфигурации для загрузки некоторых свойств по префиксу, и я могу использовать свои свойства, если я объявлю их в классе ниже:
@Configuration
@ConfigurationProperties
public class ConfiguationProperties {}
Но я не хочу помещать все свойства в файл свойств конфигурации и сохранять мой applicationContext непосредственно загружающим свойства, используя синтаксис заполнителей, есть ли возможность?
1 ответ
Моя ошибка состояла в том, что путь к моим файлам конфигурации был неправильным, потому что мои файлы свойств находились в подкаталоге моего пути конфигурации ${config-path}/subdirectory/myapplication-dev.properties
Я удалил подкаталог, и он работает нормально. Кажется, что сервер конфигурации правильно загружает файлы свойств в classpath, только если он учитывает URL схемы:
http://localhost:8888/${my-profile}/myapplication
и не:
http://localhost:8888/subdirectory/${my-profile}/myapplication
(событие, если я могу видеть свои свойства в веб-браузере с этим URL)