spring cloud多环境配置

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

 <profiles>
     <!--开发环境-->
     <profile>
         <id>dev</id>
         <properties>
             <build.profile.id>dev</build.profile.id>
         </properties>
         <activation>
             <activeByDefault>true</activeByDefault>
         </activation>
     </profile>
     <!--测试环境-->
     <profile>
         <id>test</id>
         <properties>
             <build.profile.id>test</build.profile.id>
         </properties>
     </profile>
     <!--生产环境-->
     <profile>
         <id>prod</id>
         <properties>
             <build.profile.id>prod</build.profile.id>
         </properties>
     </profile>
 </profiles>

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

     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </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即可

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页