SpringProfile轻松切换多环境配置文件

在项目开发的过程当中,咱们不免会遇到开发、测试、生产等环境的切换,而各个环境的配置确定是不一样的。传统的办法是在项目打包的时候修改配置文件。但人为作的事情不免产生意外。Spring 为咱们提供了一种多环境配置文件同时存在,而运行/打包时仅运行所选的配置文件的方式。具体的介绍以下:html

Spring提供了两种属性:

spring.profiles.active

spring:
  profiles:
#    active: yaya
    active: keats

指定激活哪一个文件,值是 application-{profileName}.yml 中的 profileName。用于区分不一样的运行环境spring

PS:若是 application.yml 和被激活的 yml 中同时配置了一个相同的键,被激活的yml中的值会覆盖 application.yml 中的值。数据库

spring.profiles.include

spring:
  profiles:
    include: yayaDB,yayaRedis

指定包含(合并)多个yml的内容一块儿启动。这样有助于同环境下yml文件的分类管理app

PS:像上面 include 值是多个的状况,除了使用 , 分隔的输入方式外,还可使用 换行 - profileName 的方式,这是 yml 的一种语法。若是不清楚 yml 的语法,能够参考 SpringBoot入门及YML文件详解ide

spring:
  profiles:
    include:
      - yayaDB # 注意换行和空格
      - yayaRedis

接下来是一个示例的DEMO项目,项目的结构以下:测试

1582377859097

各文件内容以下:fetch

application.ymlurl

spring:
  profiles:
    active: yaya
#    active: keats
server:
  port: 9001 # 若是被激活的 yml 中有相同的配置,会覆盖此值

application-keats.ymlidea

server:
  port: 9000
eureka:
  server:
    enable-self-preservation: false # 关闭自我保护
    eviction-interval-timer-in-ms: 4000 # 剔除服务间隔,单位/ms
  instance:
    hostname: localhost
  client:
    register-with-eureka: false # 是否将本身注册到注册中心
    fetch-registry: false # 是否从Eureka中获取注册信息
    service-url: # Eureka Client 的请求地址
      defaultZone: http://#{eureka.instance.hostname}:#{server.port}/eureka/

application-yaya.ymlcode

spring:
  profiles:
    include: yayaDB,yayaRedis

application-yayaDB.yml

# 专门配置DB 的yml,实际项目中能够根据需求,配置文件多了须要分类就分类,少了用不着分类就一种环境一个YML# 这里由于Eureka服务用不到链接数据库,用端口号配置信息代替
server: 
  port: 9100

application-yayaRedis.yml

# 能够专门用来配置Redis的信息。这里由于用不到Redis。我就用除端口之外的其余配置信息填充了
eureka:
  server:
    enable-self-preservation: false # 关闭自我保护
    eviction-interval-timer-in-ms: 4000 # 剔除服务间隔,单位/ms
  instance:
    hostname: localhost
  client:
    register-with-eureka: false # 是否将本身注册到注册中心
    fetch-registry: false # 是否从Eureka中获取注册信息
    service-url: # Eureka Client 的请求地址
      defaultZone: http://#{eureka.instance.hostname}:#{server.port}/eureka/

按照以上的 yml 配置以后,就能够经过注释与放开不一样的 active,来实现环境的切换了。

顺便教你们另一个技能:

Idea将同一个项目屡次启动

选择对应的项目启动类,点击 Edit Configurations

1582378343139

取消勾选: Single instance only

1582378399992

相关文章
相关标签/搜索