SpringBoot学习笔记

配置文件加载位置,及优先级

配置文件加载位置:

springboot启动会扫描以下位置的application.properties或则application.yml文件作为Springboot的
默认配置文件

-file:./config/ (主目录下的config文件下)
-file:./ (主目录下)
-classpath:/config/ (resource文件夹下的config文件夹)
-classpath:/ (resource文件夹下)

以上按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容
注意:所有位置的配置文件都会被加载,只是在对同一配置上,优先级高的会覆盖优先级低的,其它配置仍然起作用;
如:
优先级:P1文件>P2文件,
P1:A=a1,B=b1,C=c1,F=f1;
P2:A=a2,B=b2,D=d2,E=e2;
最后运行的配置信息应该为:
A=a1,B=b1,C=c1,D=d2,E=e2,F=f1 (即只有AB的内容被覆盖了,其它的不做改变)

配置文件自动提示失效

在学习过程中,发现有时候编写配置文件的时候,发现有的可以有自动提示补全功能,而有些没有自动提示补全的功能,但在反复测试后,发现带有图标的有自动提示功能:在这里插入图片描述
在这里插入图片描述

而当为普通文件时,则没有该功能:
在这里插入图片描述
在这里插入图片描述

解决思路:

  1. 一定要保证引入了配置提示功能的依赖
        <!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
  1. 如果是yml,切换成properties,如果是properties,切换成yml,然后刷新一下或则
    重启,如果出现自动提示的图标就表示可以用自动提示补全功能了;

  2. 在测试中发现一下两个位置的文件类型不能一致,一致时,最后创建的文件就变成普通文件,没有自动提示,而在保证其一个为yml,而另一个为properties时,就都可以自动提示补全了

-classpath:/config/   (resource文件夹下的config文件夹)
-classpath:/	(resource文件夹下)
其它的配置记录

server:
servlet:
context-path: /boot02

之后访问路径要从localhost:8083/hello变成localhost:8083/boot02/hello
即是在@RequestMapping("/hello")前增加content-path的内容


我们还可以通过spring.config.location来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;
指定配置文件和默 认加载的这些配置文件共同起作用形成互补配置;
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties

解释:使用G盘下的application.properties中的配置覆盖已经打完jar包的配置


debug=true

//此命令下可以查看自动配置类,哪些生效了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值