在Spring Boot中,(或)配置文件的加载顺序是由Spring Boot的抽象和类共同管理的。这个加载过程涉及多个步骤,包括从多个位置搜索配置文件、合并配置属性以及应用优先级规则。
1、application.yml都可以放置在哪些位置
1.1 项目根目录下的文件夹中:/config/application.yml
1.2 项目根目录下:/application.yml
1.3 类路径(classpath)下的文件夹中:classpath:/config/application.yml
1.4 类路径(classpath)下:classpath:/application.yml
2、加载顺序和优先级
2.1 项目根目录下的文件夹中的(/config/application.yml-最高优先级)。
2.2 项目根目录下的 /。(优先级次之)
2.3 类路径(classpath)下的文件夹中的
2.4 类路径(classpath)下的 /(最低优先级)。
根据加载顺序和优先级,项目根目录下的文件夹中的会被优先加载。如果在这个位置存在配置文件,Spring Boot会首先加载它,并且如果其中有与其他位置的配置文件相同的配置项,它会覆盖其他位置的配置。
3、相关代码解析
3.1 的方法:
--- 这个方法会在Spring Boot的事件触发时被调用。它负责初始化配置文件加载过程。
3.2 配置文件位置搜索:
--- 会调用来解析配置文件的位置。会根据前面提到的搜索位置规则来生成可能的配置文件路径列表。
3.3 配置文件加载:
--- 一旦确定了配置文件的位置,会使用来加载这些文件。对于YAML文件,会使用。
3.4 属性合并:
--- 加载的配置文件会被转换成对象,并添加到Spring的中。Spring的是一个抽象,它允许你访问应用程序的属性,包括系统属性、环境变量、命令行参数以及配置文件中的属性。
3.5 优先级应用:
--- 在添加到时,后添加的会覆盖先前添加的同名属性。因此,根据加载顺序,优先级高的配置文件中的属性会覆盖优先级低的配置文件中的同名属性。
4、注意事项
3.1 如果在同一个目录下同时存在和文件,Spring Boot会默认先读取文件。但是,建议在同一项目中尽量统一使用一种配置文件格式(或),以避免潜在的配置冲突和混淆。
3.2 可以通过命令行参数来指定额外的配置文件位置,这些指定的配置文件具有最高的优先级。但是,使用这种方式指定的配置文件不会与默认位置的配置文件形成互补配置;如果需要互补配置,可以使用参数。
3.3 在Spring Boot 2.0及以上版本中,使用参数时,Spring Boot只会加载指定的配置文件,而不会加载默认位置的配置文件。因此,在使用该参数时需要谨慎。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/31479.html