SpringBoot基础设置-profile

- 需求:在本地开发和生产环境之间修改设置快要逼疯我了,今天一定要搞定他!!!
开发者在项目发布之前,一般需要频繁的在开发环境,测试环境以及生产环境之间进行切换,这个时候需要频繁更改,例如,数据库配置,consul配置,admin配置,rabbitmq配置等。频繁修改带来了巨大的工作量,SPring对此提供了解决方案(@Profile注解),Spring Boot则更进一步提供了更加简洁的解决方案,Spring Boot中约定的不同环境文件名称规则为
application-{profile}.yml

profile占位符表示当前环境的名称,具体配置步骤如下。以团队微服务架构中的监控admin为例。

  1. 创建配置文件
    首先在resources目录下创建两个配置文件:application-dev.yml和application-prod.yml,分别表示开发环境中的配置和生产环境中的配置。
    application-dev.yml配置如下:
server:
  port: 8220
spring:
  application:
    name: micro-admin
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        health-check-url: http://localhost:8220/actuator/health
        hostname: localhost
application-prod.yml配置如下:
server:
  port: 8220
spring:
  application:
    name: micro-admin
  cloud:
    consul:
      host: 172.17.0.1
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        health-check-url: http://172.17.0.1:8220/actuator/health

        hostname: 172.17.0.1

  1. 配置application.yml
    然后在application.yml中进行配置
spring:
  profiles:
    active: dev

这个表示使用appication-dev.yml配置文件启动项目,若将dev改成prod,则表示使用application-prod.yml启动项目。项目启动成功之后,就可以用相应的端口进行访问了。

  1. 在代码中配置
    对于第二步在application.yml中添加的配置,我们也可以在代码中添加配置来完成,在启动类的main方法上添加如下代码,可以替换第二步的配置:
    在这里插入图片描述
    1. 项目启动时的配置
      对于第二步,第三步提到的两种配置方式,也可以将项目打成jar包后启动时,在命令行动态指定当前环境,实例命令如下:
jar -jar micro-admin.jar --spring.profiles.active=prod

这个对于dokcer形成镜像时想想还真有用!!!!

发布了110 篇原创文章 · 获赞 54 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43404791/article/details/105230376