使用配置服务器解析Springboot应用程序中的占位符时出错

时间:2018-12-26 10:32:41

标签: java spring spring-boot configserver

我正在配置配置服务器以在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 个答案:

答案 0 :(得分:0)

我的错误是我的配置文件的路径不正确,因为我的属性文件位于配置路径$ {config-path} /subdirectory/myapplication-dev.properties的子目录中

我删除了子目录,它运行正常。似乎配置服务器只有遵守模式url,才能正确加载类路径中的属性文件:

 http://localhost:8888/${my-profile}/myapplication

而不是:

http://localhost:8888/subdirectory/${my-profile}/myapplication

(如果我可以使用此URL在网络浏览器中看到我的属性,则为事件)