我有一个弹簧启动应用程序,它是通过jenkins管道构建的,并部署到关键的云代工厂。假设我有一个属性(application.properties)文件,其中包含以下值:
local.properties
并在代码中的某个地方引用该属性。这是为了建立与环境无关的构建。
我想要做的是通过PCF上的用户提供的服务将其公开为VCAP,以便属性文件变为:
API_URL = http://API_URL/
我在pcf上运行cups命令并将服务绑定到我的应用程序,但是当通过jenkins管道提供属性文件时,它会错误地抱怨它无法解析上面提到的值。我还在manifest.yml文件中包含绑定。人们已经说过,spring boot支持vcap值的解析,但是我无法实现这一点。对我做错了什么的想法?
答案 0 :(得分:0)
此处描述了Spring Boot的自动功能。
它基本上将采用VCAP_SERVICES环境变量并将其展平。它在vcap.services.*
下公开,下一位是服务实例名称,后跟您在服务实例下公开的属性。
如果您遇到问题,我建议启用Spring Boot Actuator。它具有可以转储属性的端点。您可以使用它来确认它们是否可用,并查看确切的名称,因为有时可能很难获得完全正确的属性名称。
对于它的价值,如果你只有一个属性并且它不敏感,你可以考虑通过env变量传递它。由于Spring Boot如何自动将env变量映射到属性中,因此它更容易使用。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
希望有所帮助!