我们在日常开发中,为了少改动代码,一般都会配置多个环境的配置文件,因为每个环境都有一套自己的配置信息
application-dev.yml application-test.yml applicatiaon-prod.yml
那么如何配置多环境呢?
首先,pom文件中添加以下代码(与dependencies同级):
<profiles>
<!--生产环境-->
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
<finalName.pack>ai-doc-analysis</finalName.pack>
</properties>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
<finalName.pack>ai-doc-analysis</finalName.pack>
</properties>
</profile>
<!--本地环境-->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
<finalName.pack>ai-doc-analysis</finalName.pack>
</properties>
</profile>
</profiles>
接着,创建多个配置文件
主配置文件中加上:
spring:
# 环境 prod_生产 test_测试 dev_开发
profiles:
active: @profileActive@
各个分配置文件中配置数据源、redis、rocketmq以及一些接口地址等。
启动测试后遇到了这个问题:
org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character ‘@’ that cannot start any token
如果配置都没出错,那就是缓存的问题了。maven重新刷新一下即可。