SpringBoot:高级特性 Profile ---- 23

ssssProfile的功能:为了方便多环境适配,springboot简化了profile功能。(适用于不同的环境)https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.profiles

application-profile功能

ssss● 默认配置文件 application.yaml;任何时候都会加载

ssss● 指定环境配置文件 application-{env}.yaml , eg:①、application-prod.yaml ②、application-test.yaml

ssss● 激活指定环境 :spring.profiles.active=配置环境名

sssdss ○ 配置文件激活

sssdss ○ 命令行激活:java -jar xxx.jar --spring.profiles.active=prod --person.name=haha

sssdsdsdss 【注】:修改配置文件的任意值,命令行优先

ssss● 默认配置与环境配置同时生效 =====》总结:命令行>指定配置文件>默认配置文件

ssss● 同名配置项,profile配置优先

@Profile条件装配功能

在这里插入图片描述

在这里插入图片描述

profile分组

在这里插入图片描述

spring.profiles.group.production[0]=proddb
spring.profiles.group.production[1]=prodmq

使用:--spring.profiles.active=production  激活

外部化配置

ssss官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config
在这里插入图片描述
ssss通过官方文档我们可以知道:

sdssss①、外部配置源常用:Java属性文件、YAML文件、环境变量、命令行参数;

dsdsdssdssss环境变量:比如我们的操作系统,MAVEN版本是什么等

    @Value("${MAVEN_HOME}")
    private String msg;

    @Value("${os.name}")
    private String osName;

    @GetMapping("/msg")
    public String getMsg(){
        return msg+"=====>"+osName;
    }

dsdsdsdsdsdsdsdsssdssssadas在这里插入图片描述
dsdsdssdssss我们也可以通过其他途径查看系统环境、参数等:

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {

        ConfigurableApplicationContext run = SpringApplication.run(DemoApplication.class, args);
        ConfigurableEnvironment environment = run.getEnvironment();
        Map<String, Object> systemEnvironment = environment.getSystemEnvironment();
        Map<String, Object> systemProperties = environment.getSystemProperties();
        System.out.println(systemEnvironment);
        System.out.println(systemProperties);
    }
}

在这里插入图片描述

配置文件查找位置

ssss(1) classpath 根路径dsdss在这里插入图片描述

ssss(2) classpath 根路径下config目录

ssss(3) jar包当前目录 ssss注:从这时起,我们已经打好包了,如果再改变其配置就只能在jar包所在的目录开始配置。

ssss(4) jar包当前目录的config目录

ssss(5) /config子目录的直接子目录

配置文件加载顺序:

ssss1. 当前jar包内部的application.properties和application.yml

ssss2.  当前jar包内部的application-{profile}.properties 和 application-{profile}.yml

ssss3.  引用的外部jar包的application.properties和application.yml

ssss4.  引用的外部jar包的application-{profile}.properties 和 application-{profile}.yml

总结:指定环境优先,外部优先,后面的可以覆盖前面的同名配置项

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值