配置文件命名方式是:application-环境.yml,springboot提供如下的配置,让我们可以指定使用哪个配置文件:

spring:
  profiles:
    active: @env@

pom.xml中加入如下配置:

<!--配置不同的profile,对应不同的生产环境。-->
    <profiles>
        <profile>
            <!--开发-->
            <id>dev</id>
            <activation>
                <!--默认开发环境-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!--自定义的变量名称env作为标签,标签内是我们配置文件不同环境的后缀。-->
                <env>dev</env>
            </properties>
        </profile>
        <profile>
            <!--生产-->
            <id>prod</id>
            <properties>
                <env>prod</env>
            </properties>
        </profile>
        <profile>
            <!--测试-->
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
    </profiles>

Maven打包插件:

    <build>
        <plugins>
            <plugin>
                <!--springboot使用maven打包的插件-->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <!--指定配置文件的位置-->
                <directory>src/main/resources</directory>
                <includes>
                    <!--读取resources下的所有文件,include表示指定文件内的,相对的还有excludes ,排除其下的文件。-->
                    <include>**/*</include>
                </includes>
                <!--开启替换标签,比如我们的'@env'就是通过这个替换的。-->
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

不同环境下的配置示例:
application-dev.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai #url
    username: root
    password: abc123
    driver-class-name: com.mysql.cj.jdbc.Driver
  config:
    activate:
      on-profile: dev

application-prod.yml

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: abc123
    driver-class-name: com.mysql.cj.jdbc.Driver
  config:
    activate:
      on-profile: prod

按照如上配置,在IDEA右侧的Maven配置文件中可以勾选启动环境。

最后修改:2023 年 05 月 31 日
给我一点小钱钱也很高兴啦!o(* ̄▽ ̄*)ブ