You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Spring Boot部署的React应用配置动态环境URL

Spring Boot + React 多环境API URL配置方案

一、在Maven中配置多环境Profile

在pom.xml的<project>标签下添加环境Profile,为每个环境定义专属的API URL属性:

<profiles>
    <!-- 本地开发环境(默认激活) -->
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <api.base.url>http://localhost:8080/api/</api.base.url>
        </properties>
    </profile>
    <!-- 预发布环境 -->
    <profile>
        <id>stage</id>
        <properties>
            <api.base.url>https://www.stageUrl.com/api/</api.base.url>
        </properties>
    </profile>
    <!-- 生产环境 -->
    <profile>
        <id>prod</id>
        <properties>
            <api.base.url>https://www.prodUrl.com/api/</api.base.url>
        </properties>
    </profile>
</profiles>

二、修改React代码,替换硬编码URL为占位符

将React的axios配置文件中的固定URL替换为Maven可识别的占位符:

import axios from 'axios';

export const widgetAxiosClient = () => {
  const client = axios.create({
     baseURL: "${api.base.url}"
  });

  return { client };
};

三、调整Maven资源插件配置,确保占位符替换生效

修改maven-resources-plugin配置,指定需要过滤的文件范围,避免无差别处理所有资源影响性能:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>process-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/target/classes/static</outputDirectory>
                <resources>
                    <!-- 对包含API URL的文件启用过滤 -->
                    <resource>
                        <directory>src/main/webapp/build</directory>
                        <filtering>true</filtering>
                        <includes>
                            <include>**/axios-client.js</include>
                            <include>**/main.*.js</include>
                        </includes>
                    </resource>
                    <!-- 其他资源直接复制,不进行过滤 -->
                    <resource>
                        <directory>src/main/webapp/build</directory>
                        <filtering>false</filtering>
                        <excludes>
                            <exclude>**/axios-client.js</exclude>
                            <exclude>**/main.*.js</exclude>
                        </excludes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

四、构建与运行命令

根据目标环境选择对应的Maven命令构建:

  • 本地环境(默认):
mvn clean package
  • 预发布环境:
mvn clean package -P stage
  • 生产环境:
mvn clean package -P prod

构建完成后,直接启动打包后的Spring Boot应用即可,React会自动使用对应环境的API URL。

内容的提问来源于stack exchange,提问作者ksernow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:27:02