🦆博主介绍:小黄鸭技术
🌈擅长领域:Java、实用工具、运维
📧如果文章写作时有错误的地方,请各位大佬指正,一起进步!!!
🧡欢迎大家点赞➕收藏⭐➕评论💬支持博主🤞
目录
📰介绍
一般在实际项目开发中,一个项目会存在多个环境,比如开发环境,测试环境,生产环境等,不同环境的端口号、数据库连接或者其他配置也不尽相同,所以我们需要对不同环境提供不同的配置,所以有了Profile通过指令或者指定参数的凡是来区分不同的环境配置。
💾Profile配置
命名格式:
bootstrap-{profile}.yml
其中profile一般为各个环境的命名,比如开发(dev)、测试(test)、生产-prod)等等。
bootstrap.yml基础文件配置
spring:
application:
# 应用名称
name: duck
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: ${common.nacos.config.server}
# 命名空间
namespace: ${common.nacos.config.namespace:public}
config:
# 配置中心地址
server-addr: ${common.nacos.config.server}
namespace: ${common.nacos.config.namespace:public}
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
profiles:
#采用灵活的参数配置 在pom.xml中定义不同的环境 打包时指定配置文件打包
active: @spring.profiles.active@
bootstrap-{profile}.yml环境配置
common:
nacos:
config:
#Nacos 服务地址
server: 192.168.3.XXX:XXXX
#Nacos 命名空间
namespace:public
只需要配置上不同环境的服务地址和命名空间即可。
pom.xml配置
<profiles>
<profile>
<id>dev</id>
<activation>
<!--默认激活-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<spring.profiles.active>test</spring.profiles.active>
</properties>
</profile>
<!--开发环境-->
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
<!-- 配合profiles中配置的环境文件使用,不配置项目启动报错 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 处理文件时替换文件中的变量 -->
<filtering>true</filtering>
<excludes>
<!-- 打包时排除文件-->
<exclude>bootstrap.yml</exclude>
<exclude>bootstrap-dev.yml</exclude>
<exclude>bootstrap-test.yml</exclude>
<exclude>bootstrap-prod.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!-- 打包时所包含得文件 -->
<includes>
<include>bootstrap.yml</include>
<include>bootstrap-${spring.profiles.active}.yml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
💻命令
java启动
通过--spring.profiles.active=xxx参数来控制
1.普通启动
java -jar xxx.jar --spring.profiles.active=dev 表示使用开发环境的配置
java -jar xxx.jar --spring.profiles.active=test 表示使用测试环境的配置
java -jar xxx.jar --spring.profiles.active=prod 表示使用生产环境的配置
2. 指定Nacos (NameSpace)命名空间和(Group)分组启动
java -Dspring.profiles.active=XXX
-Dspring.cloud.nacos.config.namespace=XXX
-Dspring.cloud.nacos.config.group=XXX_GROUP
-jar XXXX.jar
maven打包
勾选配置文件或者命令指定profile打包
1.
2.
mvn clean package -P ${profile}
🧡欢迎大家点赞➕收藏⭐➕评论💬支持博主🤞