我有一个导入外部库的Spring Boot应用程序。我正在读取我导入的依赖项中的spring.xml。它正在抛出错误,因为它正在寻找" propDir"我没有定义。我看到一个错误"名称无效的bean定义....无法解析占位符' propDir'"
<value>file:${propDir}/env-config.properties</value>
我看到另一个春季启动应用程序导入相同的依赖项,它启动就好了。当我调试启动序列并看到propDir的值时,我看到它没有被替换,我看到&#34; file:$ {propDir} /env-config.properties"在创建的bean中。
我搜索了该应用,但还没有真正弄清楚其他应用是如何不抛出错误的。我缺少一个配置吗?
答案 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