Spring Boot App - 无法解析占位符

时间:2016-10-09 21:34:53

标签: java spring spring-boot

我有一个导入外部库的Spring Boot应用程序。我正在读取我导入的依赖项中的spring.xml。它正在抛出错误,因为它正在寻找" propDir"我没有定义。我看到一个错误"名称无效的bean定义....无法解析占位符' propDir'"

<value>file:${propDir}/env-config.properties</value>

我看到另一个春季启动应用程序导入相同的依赖项,它启动就好了。当我调试启动序列并看到propDir的值时,我看到它没有被替换,我看到&#34; file:$ {propDir} /env-config.properties"在创建的bean中。

我搜索了该应用,但还没有真正弄清楚其他应用是如何不抛出错误的。我缺少一个配置吗?

2 个答案:

答案 0 :(得分:3)

您需要为propDir指定一个值。

这可以通过jvm参数来完成 -DpropDir=nameoffoldertouse 或通过PropertyPlaceholderConfigurer加载的属性文件。

依赖此bean的其他应用程序可能会隐藏默认值。

依赖于此值的bean可能需要它来保证其正确的行为,如果您不想提供此属性,则不依赖于使用它的bean。

答案 1 :(得分:1)

Spring引导应用程序的属性可以使用不同的方式传递,很可能对于其他应用程序,“propDir”的属性是我认为以本文档中指定的方式之一传递:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html