Springboot在启动的时候会自动扫描application.properties或者application.yml为Springboot的默认配置

classpath:/ 就是resources文件夹

1.放置默认配置文件的位置

  • 项目根目录/config
  • 项目根目录/
  • classpath:/config
  • classpath:/

上面这4个为放置位置,顺序从先到后

2. 实践操作

首先将配置文件放入 classpath:/ 文件夹,也就是resources文件夹,设置server-port=9090

classpath:/

下面我们看看运行一下,看下他运行的哪个端口

运行的9090

这次我们将application.yml放入 classpath:/config 文件夹,也就是resources文件夹下的config内,设置端口为9091

放入classpath:/config下使用9091端口

我们看到,这次服务器运行的端口是我们这次设置的9091端口,所以证实了 classpath:/config优先级 > classpath:/的优先级

这次我们将配置文件放入项目的根目录,设置端口为 9092,在看看运行的是哪个窗口

9092端口

这次的运行端口变成了9092,在进行下一个试验

这次在项目根目录创建一个config文件夹,将配置文件放入,端口号设置为 9093

9093端口

这样一来,4个文件的位置都已经试过了,我们通过实践可以得出他们的优先级顺序

根目录下的config > 根目录 > classpath:/config > classpath:/

3.他们之间的关系

这次试验我发现了一个很重要的事情,因为的项目连接着数据库,我以前创建完项目,如果在配置文件内没有设置数据库的连接信息,他就会报错,仔细看下上面的图片,可以发现,在第一次试验 classpath:/下的配置文件中,application.yml内有着数据库的配置信息,但是其他的配置文件中,并没有,只有一个设置端口号的,所以得出一个结论

这4个位置,如果配置文件里面存在相同的设置,例如端口号,则会采用优先级最大的那个文件内的设置,如果不存在相同的设置,则所有文件里的设置都会生效,存在互补的关系

接下来我们就要验证了

config下的配置信息,我们只设置端口号

config文件夹下的配置信息

跟目录下的我们里面设置项目名称

根目录下的配置

创建一个Controller,试一下在我们设置的项目名内是否能打开这个项目

http://localhost:9093/test/admin/index.do

接下来访问下test这个项目 http://localhost:9093/test/admin/index.do ,发现可以访问到,所以我们的第二个配置也生效了

访问

这就是关于配置文件放置的4个位置与关系

更新于

请我喝[茶]~( ̄▽ ̄)~*

Fanxing 微信支付

微信支付

Fanxing 支付宝

支付宝

Fanxing 贝宝

贝宝