spring cloud多环境配置

在做项目的时候,往往有多种环境,开发/测试/生产等,但不能每一次都去修改配置文件,于是可以通过配置来选择你所需的环境。
spring cloud多环境配置_第1张图片
application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境
在pom.xml文件中,配置如下内容:

 <profiles>
     
     <profile>
         <id>devid>
         <properties>
             <build.profile.id>devbuild.profile.id>
         properties>
         <activation>
             <activeByDefault>trueactiveByDefault>
         activation>
     profile>
     
     <profile>
         <id>testid>
         <properties>
             <build.profile.id>testbuild.profile.id>
         properties>
     profile>
     
     <profile>
         <id>prodid>
         <properties>
             <build.profile.id>prodbuild.profile.id>
         properties>
     profile>
 profiles>

 <build>
     <finalName>${project.artifactId}finalName>
     <resources>
         <resource>
             <directory>src/main/resourcesdirectory>
             <filtering>falsefiltering>
         resource>
         <resource>
             <directory>src/main/resources.${build.profile.id}directory>
             <filtering>falsefiltering>
         resource>
     resources>

     <plugins>
         <plugin>
             <groupId>org.springframework.bootgroupId>
             <artifactId>spring-boot-maven-pluginartifactId>
         plugin>
     plugins>
 build>

application.yml中配置如下内容,就会默认加载开发环境的属性,其他同理 :

spring:
  profiles:
    active: dev

注:如果spring.profiles.active没有指定值,那么只会使用没有指定spring.profiles文件的值,也就是只会加载通用的配置。
application-dev.yml,这里根据自己的开发参数进行修改,我这里是多环境区分注册中心地址,示例代码如下:

server:
  port: 8765
eureka:
  instance:
    hostname: 192.168.1.12
  client:
    serviceUrl:
      defaultZone:  http://192.168.1.12:1111/eureka/

其他环境同理配置即可
当我们通过命令要启动时通过--spring.profiles.active=xxx来控制加载哪个环境的配置,如下:

java -jar xxx.jar --spring.profiles.active=dev 表示使用开发环境的配置
java -jar xxx.jar --spring.profiles.active=test 表示使用测试环境的配置
java -jar xxx.jar --spring.profiles.active=prod 表示使用生产环境的配置

若果需要单独打包,通过执行 mvn clean package -P ${profile} 来指定使用哪个profile即可

你可能感兴趣的:(框架相关)