搜索
首页Javajava教程springboot怎么查找配置文件路径的顺序和其优先级别

    查找配置文件路径的顺序和其优先级别

    一、springboot查找配置文件路径的顺序和其优先级别

    在项目类,有四个地方系统会自动扫描:

    1.file:/config/

    2.file:/

    3.classPath:/config/

    4.classPath:/

    1)其文件生效优先级别,从上到下,即如果在不同路径有相同属性,会优先选择上面的路径属性(1>2>3>4)

    2)路径扫描顺序和其优先级别相反(4>3>2>1),后面的会覆盖前面的,并且所有路径都会扫描,形成互补。

    二、同路径下

    application.properties(application.yml)、bootstrap.properties(bootstrap.yml)加载顺序及优先级别

    1.application和bootstrap比较(前缀比较)

    提示:bootstrap类型文件是在多服务项目时,引入了springcloud相关配置才会生效,springboot并不会自动扫描bootstrap文件,只会扫描application文件,所以两者的比较只有在spingcloud多服务项目中才有意义。

    1)先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载

    Bootstrap 属性具有较高的优先级,在默认情况下,它们不会被本地配置所覆盖。(这个是网上和官方的说法,但经过本人的测试,发现application 会覆盖bootstrap,我的理解是不是所有的bootstrap属性都比application优先,只有涉及底层系统相关配置才会比较高 ,有不同看法的老哥欢迎探讨)

    3)区别:bootstrap 和 application 都可以用来配置参数。

    Bootstrap用于早期应用程序引导和配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootstrap被加载,则内容不会被覆盖。

    application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

    4)bootstrap典型的应用场景(经典三点)

    • 1.当使用 Spring Cloud Config Server 配置中心时,这时需要在 bootstrap.yml 指定 spring.applicatio配置文件中n.name 和 spring.cloud.config.server.git.uri,添加连接到配置中心的配置属性来加载外部配置中心的配置信息

    • 2.一些固定的不能被覆盖的属性

    • 3.一些加密/解密的场景

    2. .properties和.yml比较(后缀比较)

    1)加载顺序

    .yml先于.properties

    2)优先级别

    .properties优先于.yml,因为.properties后加载会覆盖.yml

    3)区别

    • 1.yml拥有天然的树状结构,properties是键值对;

    • 2.在properties文件中是以”.”进行分割的, 在.yml中是用”:”进行分割;

    • 3.在.yml中缩进一定不能使用TAB,否则会报很奇怪的错误;;

    • 4.yml比.properties对中文对支持更友好。

    • 5.yml是跨语言的:可以在包括JAVA,go,python等大量的语言中使用,比如做云计算使用go和java的时候,可以通过配置中心使用同一份配置!

    • 6.在自定义配置文件时,只能使用properties,因为spring只有@PropertiesSource注解可以引入自定义注解,对yml没有支持

    小结:在同级目录下,优先级别application>bootstrap,.properties>,yml,前缀大于后缀,文件路径大于文件名称

    springboot配置文件不生效的原因

    1、将打包方式改为jar 。

    <packaging>jar</packaging>

    2、可能是yml文件缩近格式不对,仔细检查一下就行了。

    3、还有就是你的根本就不是boot项目,application.yml没有叶子标志

    1.点开项目结构

    springboot怎么查找配置文件路径的顺序和其优先级别

    2.打开模块一次点击

    springboot怎么查找配置文件路径的顺序和其优先级别

    3.

    springboot怎么查找配置文件路径的顺序和其优先级别

    4.重构项目

    springboot怎么查找配置文件路径的顺序和其优先级别

    以上是springboot怎么查找配置文件路径的顺序和其优先级别的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文转载于:亿速云。如有侵权,请联系admin@php.cn删除
    是否有任何威胁或增强Java平台独立性的新兴技术?是否有任何威胁或增强Java平台独立性的新兴技术?Apr 24, 2025 am 12:11 AM

    新兴技术对Java的平台独立性既有威胁也有增强。1)云计算和容器化技术如Docker增强了Java的平台独立性,但需要优化以适应不同云环境。2)WebAssembly通过GraalVM编译Java代码,扩展了其平台独立性,但需与其他语言竞争性能。

    JVM的实现是什么,它们都提供了相同的平台独立性?JVM的实现是什么,它们都提供了相同的平台独立性?Apr 24, 2025 am 12:10 AM

    不同JVM实现都能提供平台独立性,但表现略有不同。1.OracleHotSpot和OpenJDKJVM在平台独立性上表现相似,但OpenJDK可能需额外配置。2.IBMJ9JVM在特定操作系统上表现优化。3.GraalVM支持多语言,需额外配置。4.AzulZingJVM需特定平台调整。

    平台独立性如何降低发展成本和时间?平台独立性如何降低发展成本和时间?Apr 24, 2025 am 12:08 AM

    平台独立性通过在多种操作系统上运行同一套代码,降低开发成本和缩短开发时间。具体表现为:1.减少开发时间,只需维护一套代码;2.降低维护成本,统一测试流程;3.快速迭代和团队协作,简化部署过程。

    Java的平台独立性如何促进代码重用?Java的平台独立性如何促进代码重用?Apr 24, 2025 am 12:05 AM

    Java'splatformindependencefacilitatescodereusebyallowingbytecodetorunonanyplatformwithaJVM.1)Developerscanwritecodeonceforconsistentbehavioracrossplatforms.2)Maintenanceisreducedascodedoesn'tneedrewriting.3)Librariesandframeworkscanbesharedacrossproj

    您如何在Java应用程序中对平台特定问题进行故障排除?您如何在Java应用程序中对平台特定问题进行故障排除?Apr 24, 2025 am 12:04 AM

    要解决Java应用程序中的平台特定问题,可以采取以下步骤:1.使用Java的System类查看系统属性以了解运行环境。2.利用File类或java.nio.file包处理文件路径。3.根据操作系统条件加载本地库。4.使用VisualVM或JProfiler优化跨平台性能。5.通过Docker容器化确保测试环境与生产环境一致。6.利用GitHubActions在多个平台上进行自动化测试。这些方法有助于有效地解决Java应用程序中的平台特定问题。

    JVM中的类加载程序子系统如何促进平台独立性?JVM中的类加载程序子系统如何促进平台独立性?Apr 23, 2025 am 12:14 AM

    类加载器通过统一的类文件格式、动态加载、双亲委派模型和平台无关的字节码,确保Java程序在不同平台上的一致性和兼容性,实现平台独立性。

    Java编译器会产生特定于平台的代码吗?解释。Java编译器会产生特定于平台的代码吗?解释。Apr 23, 2025 am 12:09 AM

    Java编译器生成的代码是平台无关的,但最终执行的代码是平台特定的。1.Java源代码编译成平台无关的字节码。2.JVM将字节码转换为特定平台的机器码,确保跨平台运行但性能可能不同。

    JVM如何处理不同操作系统的多线程?JVM如何处理不同操作系统的多线程?Apr 23, 2025 am 12:07 AM

    多线程在现代编程中重要,因为它能提高程序的响应性和资源利用率,并处理复杂的并发任务。JVM通过线程映射、调度机制和同步锁机制,在不同操作系统上确保多线程的一致性和高效性。

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    螳螂BT

    螳螂BT

    Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    功能强大的PHP集成开发环境

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)