我正在配置配置服务器以在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使用占位符语法直接加载属性,有没有可能?
答案 0 :(得分:0)
我的错误是我的配置文件的路径不正确,因为我的属性文件位于配置路径$ {config-path} /subdirectory/myapplication-dev.properties的子目录中
我删除了子目录,它运行正常。似乎配置服务器只有遵守模式url,才能正确加载类路径中的属性文件:
http://localhost:8888/${my-profile}/myapplication
而不是:
http://localhost:8888/subdirectory/${my-profile}/myapplication
(如果我可以使用此URL在网络浏览器中看到我的属性,则为事件)