程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring 没有在 Config 子文件夹中查找大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring 没有在 Config 子文件夹中查找?

开发过程中遇到Spring 没有在 Config 子文件夹中查找的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring 没有在 Config 子文件夹中查找的解决方法建议,希望对你解决Spring 没有在 Config 子文件夹中查找有所启发或帮助;

我是 Springboot 的新手,在外部化我的属性文件时遇到了问题。 我将多个“.propertIEs”文件保存在子目录“config/”中。我已经从我的项目中删除了上下文占位符,并在执行 jar 时包含了逗号分隔的属性文件。

例如。 java -jar myjar.jar --spring.config.LOCATIOn=file:////config/PROP1.propertIEs,file:///config/PROP2.propertIEs -deBUG

我有几个问题

  1. 为什么即使在明确提到要查找的位置后,config 目录中的文件也没有被读取?
  2. 我在项目中有自己的依赖项,这些依赖项在其 jar 中打包了同名的属性文件。当 SpringBoot 在执行我的项目 jar 时尝试从 config 文件夹中读取文件时,这是否会产生任何问题?

解决方法

Spring boot 有明确的指示如何编写这个外部配置。请参阅此处的文档参https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.external-config.files

基本上,您需要像这样指定位置:

  1. --spring.config.LOCATIOn=classpath:/somefolder/somefile.properties
  2. --spring.config.LOCATIOn=file:./somefolder/somefile.properties

从您的命令行来看,您似乎缺少一个破折号,并且还使用了错误的文件架构格式。

,

问题 1:为什么即使明确提到要查找的位置,config 目录中的文件也没有被读取?

A1:如果你的 config 文件夹在你的 jar 文件旁边,你的命令应该像

  • java -jar myjar.jar --spring.config.LOCATIOn=file:./config/PROP1.properties

同时,您还可以使用完整路径来定位您的配置文件。

Q2:如果我没有明确提及属性文件名作为参数,那么即使它们在 config 目录中也不会被提取

A2:否。参见this doc,Spring Boot 会尝试从四个地方查找配置文件:

  • 当前目录的 /config 子目录。
  • 当前目录
  • 类路径 /config 包
  • 类路径根

如果 spring.config.LOCATIOn 设置为 not,这些文件夹中名为 application.properties 的文件将被视为有效的配置文件。您可以通过设置属性 spring.config.name 来更改接受的文件名。

Q3 关于配置文件优先级

A3如前面提到的 doc 中所述,如果相同的名称属性出现在不同的配置文件中,则列表中较高的位置会覆盖较低的项目。

另一个提示,最好将 jar 文件中的配置文件删除,这样您就可以在一个地方(外部化的配置文件夹)获得完整的配置视图;

大佬总结

以上是大佬教程为你收集整理的Spring 没有在 Config 子文件夹中查找全部内容,希望文章能够帮你解决Spring 没有在 Config 子文件夹中查找所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。