spring cloud - 我的 jar 外的 bootstrap.properties
Posted
技术标签:
【中文标题】spring cloud - 我的 jar 外的 bootstrap.properties【英文标题】:spring cloud - bootstrap.properties outside my jar 【发布时间】:2016-08-14 06:38:07 【问题描述】:我正在尝试将bootstrap.properties
从我的 jar 外部放入,这样它就不会被其他开发人员错误地覆盖。你能在这里给点建议吗?
这是它的内容 - 指向 spring 服务器配置
# application name
spring.application.name=elixium
# The server entry point
spring.cloud.config.uri=http://localhost:8888
【问题讨论】:
你能提供更多细节吗?你试过什么?如果您尝试过某事但失败了,那么错误是什么? 我试过使用@PropertyResource,他忽略了外部位置并在tomcat默认端口上启动 【参考方案1】:Spring Cloud 使用相同的locations as spring boot 来查找bootstrap.properties
(或.yml
)。所以classpath:,classpath:/config,file:,file:config/
是默认搜索路径,./config/
是最高优先级。如果您的文件位于 ./config
或 ./
中,它应该可以正常工作。 change the location 的属性 (spring.cloud.bootstrap.location
) 与 boot 略有不同。
【讨论】:
谢谢斯宾塞,是的,我想改变它的位置。那么我应该在 bootstrap.properties 中使用 spring.cloud.bootstrap.location 吗? 不行,它必须是环境变量、命令行参数或 java 系统属性,否则你会遇到鸡与蛋的问题。如果你不提前知道bootstrap.properties
的位置,你怎么能知道它的位置。
好吧它可以到达 bootstrap.properties 但我想将它引导到我的 jar 之外
我尝试将 spring.cloud.bootstrap.location=C:\test\test 用作环境参数。这不起作用,我尝试与 cmd 行参数一样。也许您可以将我链接到这两种方法的示例吗?我试图改变位置,但不清楚如何。 Tnx
谢谢斯宾塞 - 我已经用环境变量解决了:spring.cloud.bootstrap.location C:\tradair\config\tang\bootstrap.properties【参考方案2】:
spring.cloud.bootstrap.location
的行为类似于 spring.config.location
(在 Spring Boot 2 中),它替换了这些配置文件的位置。
要使其正常工作,必须将其定义为系统属性。 例如:
带罐子:
java -jar
-Dspring.cloud.bootstrap.location=anyLocation/bootstrap.yml
...
使用 Spring Boot maven 插件:
mvn spring-boot:run
-Dspring-boot.run.jvmArguments="-Dspring.cloud.bootstrap.location=anyLocation/bootstrap.yml"
【讨论】:
以上是关于spring cloud - 我的 jar 外的 bootstrap.properties的主要内容,如果未能解决你的问题,请参考以下文章
如何将本地 Spring Cloud 任务项目 jar 文件注册到 Spring Cloud 数据流仪表板
Maven Build-[错误] org.springframework.cloud:spring-cloud-starter-zuul:jar 的“dependencies.dependency.v
spring-cloud导入eclipse时,slf4j注解为啥找不到log变量