SpringBoot3 尚硅谷笔记 p55-56 profile环境隔离

p55-56 profile环境隔离

  • 目的:环境隔离能力,快速切换开发,测试,生产环境

      1. 标识环境:指定哪些组件、配置在哪个环境生效
      1. 切换环境:这个环境对应的所有组件和配置就应该生效
  • dev(开发环境),test(测试环境),prod(生产环境)

  • 1.查看是否放入容器中,标注注解@slf4j

    Cat cat = context.getBean(Cat.class);  
    Dog dog = context.getBean(Dog.class);  
    Pig pig = context.getBean(Pig.class);  
    Sheep sheep = context.getBean(Sheep.class);  
      
    log.info("组件cat: {}",cat);  
    log.info("组件dog: {}",dog);  
    log.info("组件pig: {}",pig);  
    log.info("组件sheep: {}",sheep);
    
  • 2.多环境识别能力
    在属性类中标记注解
    @Profile({"dev"})-->Cat组件
    @Profile({"test"})-->Dog组件
    @Profile({"prod"})-->Pig组件
    @Profile({"default"})-->Sheep组件该环境标记不标记是一样的
    只有在默认环境下的default组件
    激活哪个环境哪个生效,没有激活则不会生效

    • 在这里插入图片描述

    • 在这里插入图片描述

  • 3.激活环境

    • 1.配置文件激活
      application.properties中写上spring.profiles.active=dev环境激活
      console:2023-07-20T17:26:28.789+08:00 INFO 2108 --- [ main] com.SpringBoot3.Application : dev组件cat: Cat{id=0, name='null'}
      注意:标注profile("default")情况下sheep.class不会激活,不标注的情况下则激活
      激活多个配置文件spring.profiles.active=dev,test

    • 2.命令行激活
      注意:需要将程序停止运行
      激活命令:--spring.profiles.active=prod
      在这里插入图片描述

      在这里插入图片描述

      2023-07-20T17:35:22.343+08:00 INFO 9140 --- [ main] com.SpringBoot3.Application : prod组件pig: Pig{id=null, name='null', age=0}

    • 3.特殊情况(嵌套环境?)

      • 配置类配置激活环境
      @Profile("test")  
      @Configuration  
      public class MyConfig {  
          @Profile("dev")  
          @Bean  
          public Cat cat() {  
              return new Cat();  
          }  
      }
      

      此情况下必须在配置文件application.properties中同时激活dev,test才能使用cat组件
      spring.profiles.active=test,dev

  • 4.包含环境(总是要生效的环境)
    spring.profiles.include=test,prod
    2023-07-20T17:54:12.734+08:00 INFO 7732 --- [ main] com.SpringBoot3.Application : test组件dog: Cat{id=0, name='null'}
    2023-07-20T17:54:12.737+08:00 INFO 7732 --- [ main] com.SpringBoot3.Application : prod组件pig: Pig{id=null, name='null', age=0}
    2023-07-20T17:54:12.738+08:00 INFO 7732 --- [ main] com.SpringBoot3.Application : default组件sheep: Sheep{id=null, name='null', age=0}

  • 5.分组激活
    1.一般写法
    spring.profiles.group.haha=test,dev spring.profiles.group.hehe=default,prod
    激活时只需要写出spring.profiles.active=haha激活haha组便可以激活dev,test
    2.[]写法
    spring.profiles.group.haha[0]=test spring.profiles.group.haha[1]=dev

  • 6.配置文件使用profile功能
    application-{profile}.properties可以作为指定环境的配置文件,不可以写激活语句。
    application-{profile}.properties:指定环境配置文件,激活指定环境生效优先级更高
    激活哪个环境生效哪个环境的端口,不会受到主程序影响
    例如:application-dev.properties

  • 总结
    环境激活

    1. 配置激活指定环境; 配置文件
    spring.profiles.active=production,hsqldb
    
    1. 也可以使用命令行激活。–spring.profiles.active=dev,hsqldb
    2. 还可以配置默认环境; 不标注@Profile 的组件永远都存在。
      1. 以前默认环境叫default
        2.切换默认环境:不推荐 spring.profiles.default=test
    3. 推荐使用激活方式激活指定环境
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值