1

我正在配置配置服务器以在 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 使用占位符语法直接加载属性,有没有可能?

4

1 回答 1

0

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

我删除了子目录,它工作正常。似乎配置服务器只有在尊重架构 url 的情况下才能正确加载类路径中的属性文件:

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

并不是 :

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

(如果我可以使用此 URL 在 Web 浏览器中查看我的属性)

于 2018-12-29T11:59:04.530 回答