理论上springboot遵循maven的配置
在maven中进行配置,利用套接字,将maven中的配置传入springboot的配置中去,然后根据这个参数,springboot就会进行选择maven中指定的
先看maven:看注释
<profiles>
<profile>
<!-- 起名字,随便起,但是尽量和springboot配置中的属性名一样 -->
<id>dev</id>
<properties>
<!-- 定义套接字中的参数名,并且将这个参数复制为 dev -->
<ac.proper>dev</ac.proper>
</properties>
</profile>
<profile>
<!-- 起名字,随便起,但是尽量和springboot配置中的属性名一样 -->
<id>test</id>
<properties>
<!-- 定义套接字中的参数名,并且将这个参数复制为 test -->
<ac.proper>test</ac.proper>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 起名字,随便起,但是尽量和springboot配置中的属性名一样 -->
<id>pro</id>
<properties>
<!-- 定义套接字中的参数名,并且将这个参数复制为 pro -->
<ac.proper>pro</ac.proper>
</properties>
</profile>
</profiles>
除了要添加以上的配置以外,还需要添加,为了保证能够使springboot配置可以识别这个套接字:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
再看springboot配置:其中的套接字就和maven中的标签名一样
spring:
profiles:
active: ${ac.proper}
---
spring:
profiles: pro
server:
port: 8085
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: test
server:
port: 8082
最终调用了8082端口
配置文件的优先级
打包成jar包:
以上排名越靠后,优先级别越高,4中的文件夹aaa
是springboot3.5.0的bug,如果不创建一个文件夹的话,就会报错,所以随便创建一个即可
1、2主要是开发的时候用
3、4主要是产品上线的时候用