springboot2.0入门(八)-- profile启动文件配置

一、不同环境使用不同配置文件

 复制多份配置文件,修改不同的端口,在application.yml文件中添加具体启动的配置文件,可以看到不同的启动端口,使用maven的打包命令,将项目打入jar包:

<!-- 跳打包test文件报错-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
               <testFailureIgnore>true</testFailureIgnore>
             </configuration>
            </plugin>

如果打包出错,在xml中配置跳过test测试,进入到jar包目录,使用java -jar  启动项目

默认以开发环境8810端口启动,可以在启动时指定配置文件:

java -jar helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

扫描二维码关注公众号,回复: 7796781 查看本文章

 项目以888端口启动

二、在idea中配置启动文件:

VM options设置启动参数 -Dspring.profiles.active=prod

Program arguments设置 --spring.profiles.active=prod

Active Profile 设置 prod

 三个参数不能同时设置

2、配置文件的优先级:

外部大于内部,特指大于泛指

 下面特指的文件优先级更高

 三、文件优先级说明

 spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件

–file:./config/
–file:./
–classpath:/config/
–classpath:/

以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。

SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。

我们也可以通过配置spring.config.location来改变默认配置

java -jar Xxx-version.jar  --spring.config.location=D:/application.properties

配置加载顺序

SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

配置加载顺序

SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。

  1. 命令行参数
  2. 来自java:comp/env的JNDI属性
  3. Java系统属性(System.getProperties())
  4. 操作系统环境变量
  5. RandomValuePropertySource配置的random.*属性值
  6. jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
  7. jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
  8. jar包外部的application.properties或application.yml(不带spring.profile)配置文件
  9. jar包内部的application.properties或application.yml(不带spring.profile)配置文件
  10. @Configuration注解类上的@PropertySource
  11. 通过SpringApplication.setDefaultProperties指定的默认属性

猜你喜欢

转载自www.cnblogs.com/liweiweicode/p/11824895.html
今日推荐