在多配置文件环境中,为了在不同环境之间切换配置文件,通常的做法是修改激活的文件名称。
使用spring.profiles.active=@profiles.active@
结合Maven profile,可以选择不同的配置文件进行启动,这样可以避免手动修改文件。Maven打包时可以指定使用哪个配置文件。
首先,在pom.xml
中定义不同环境的配置属性:
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<spring.profile>dev</spring.profile>
<nacos.server.address>127.0.0.1:8848</nacos.server.address>
</properties>
<activation>
<!-- 默认激活本地开发环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<spring.profile>test</spring.profile>
<nacos.server.address>120.120.120.120:8848</nacos.server.address>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<spring.profile>prod</spring.profile>
<nacos.server.address>http://ruoyi.vip:8848</nacos.server.address>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
在YAML配置文件中,使用占位符来引用pom.xml中的属性:
# Tomcat配置
server:
port: 9201
# Spring配置
spring:
application:
# 应用名称
name: ruoyi-system
profiles:
# 激活的环境配置
active: @spring.profile@
cloud:
nacos:
discovery:
# Nacos服务注册地址
server-addr: @nacos.server.address@
config:
# Nacos配置中心地址
server-addr: @nacos.server.address@
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-{spring.profiles.active}.{spring.cloud.nacos.config.file-extension}
通过Maven命令进行打包时,可以指定环境:
mvn clean package -P dev
mvn clean package -P test
mvn clean package -P prod
打包成功后,配置文件中的占位符(如@nacos.server.address@
)会被替换为pom.xml中对应环境的变量值。例如,在测试环境下打包时,@nacos.server.address@
会被替换成120.120.120.120:8848
。
在开发过程中,通常需要在本地环境中运行应用。通过配置,开发人员可以使用本地的配置文件进行开发和调试,无需担心影响测试或生产环境。
在发布到生产环境之前,通常会在测试环境中进行测试。通过指定测试环境的配置文件,可以确保应用在一个独立的环境中进行测试,避免与其他环境的冲突。例如,测试环境可能需要连接到不同的数据库或服务地址,通过这种方式可以轻松实现配置的切换。
在生产环境中,应用需要使用生产环境的配置文件。通过Maven profile
的配置,可以确保打包时使用正确的配置文件,从而避免手动修改配置文件带来的风险。例如,生产环境的Nacos
服务器地址可能与开发或测试环境不同,通过指定生产环境的配置文件,可以确保应用在生产环境中使用正确的配置。
对于一个需要在多个环境中部署的项目,手动修改配置文件是繁琐且容易出错的。通过Maven profile
,可以轻松地在不同环境之间切换,只需在打包时指定相应的profile
即可。这对于自动化部署和持续集成/持续交付(CI/CD
)非常有帮助。
通过上述步骤和应用场景,你可以在若依项目中实现不同环境下的配置文件区分和切换,从而简化开发、测试和部署流程,提高工作效率。
powered by kaifamiao