SpringProfile轻松切换多环境配置文件
校招必看硬核干货:C++怎么学才能进大厂
在项目开发的过程当中,我们不免会碰到开发、测试、生产等环境的切换,而各个环境的设置肯定是差别的。传统的方法是在项目打包的时刻修正设置文件。但工资做的事变不免发生不测。Spring 为我们供应了一种多环境设置文件同时存在,而运转/打包时仅运转所选的设置文件的体式格局。详细的引见以下:
Spring供应了两种属性:
spring.profiles.active
spring:
profiles:
# active: yaya
active: keats
指定激活哪一个文件,值是 application-{profileName}.yml 中的 profileName。用于辨别差别的运转环境。
PS:假如 application.yml 和被激活的 yml 中同时设置了一个雷同的键,被激活的yml中的值会掩盖 application.yml 中的值。
spring.profiles.include
spring:
profiles:
include: yayaDB,yayaRedis
指定包括(兼并)多个yml的内容一同启动。如许有助于同环境下yml文件的分类管理
PS:像上面 include 值是多个的状况,除了运用 , 分开的输入体式格局外,还能够运用 换行 - profileName 的体式格局,这是 yml 的一种语法。假如不清楚 yml 的语法,能够参考
spring:
profiles:
include:
- yayaDB # 注重换行和空格
- yayaRedis
接下来是一个示例的DEMO项目,项目的构造以下:
各文件内容以下:
application.yml
spring:
profiles:
active: yaya
# active: keats
server:
port: 9001 # 假如被激活的 yml 中有雷同的设置,会掩盖此值
application-keats.yml
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.yml
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
作废勾选: Single instance only
win10CPU版TensorFlow安装详细流程(踩N个坑之后的总结)