当前位置:首页 > React

springmvc如何跑react

2026-01-24 03:48:01React

Spring MVC 与 React 集成方法

将 React 集成到 Spring MVC 项目中可以通过以下方式实现,分为开发模式和生产模式两种场景:

开发模式分离运行

在开发阶段,React 前端和 Spring MVC 后端可以独立运行:

  • 使用 create-react-app 或类似工具搭建 React 开发环境
  • 通过 npm start 运行 React 开发服务器(默认端口 3000)
  • Spring MVC 后端运行在另一个端口(如 8080)
  • 在 React 的 package.json 中配置代理:
    "proxy": "http://localhost:8080"
  • 这样 React 会自动将 API 请求转发到 Spring MVC 后端

生产模式整合部署

当需要将 React 打包后与 Spring MVC 一起部署时:

  1. 构建 React 生产包

    npm run build

    这会生成静态文件到 build 目录

  2. 将 React 构建结果复制到 Spring MVC

    springmvc如何跑react

    • build 目录内容复制到 Spring MVC 的 src/main/resources/static 目录
    • 或配置 Spring 静态资源路径指向 React 构建目录
  3. 配置 Spring MVC 控制器

    @Controller
    public class HomeController {
        @RequestMapping(value = {"/", "/{path:[^\\.]*}"})
        public String forward() {
            return "forward:/index.html";
        }
    }

    这个配置确保所有非静态资源请求都返回 React 的入口文件

  4. 配置跨域支持(如果前后端分离部署)

    springmvc如何跑react

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/")
                    .allowedOrigins("*")
                    .allowedMethods("*");
        }
    }

前后端通信方式

  • REST API:Spring MVC 提供 @RestController 处理数据请求

  • 使用 axiosfetch 在 React 中调用 API

  • 示例 React 组件调用 API:

    import React, { useEffect, useState } from 'react';
    import axios from 'axios';
    
    function App() {
      const [data, setData] = useState([]);
    
      useEffect(() => {
        axios.get('/api/data')
          .then(response => setData(response.data));
      }, []);
    
      return (
        <div>
          {data.map(item => (
            <div key={item.id}>{item.name}</div>
          ))}
        </div>
      );
    }

构建工具集成

对于更紧密的集成,可以考虑:

  • 使用 Maven 或 Gradle 插件自动构建 React 项目
  • 示例 Maven 配置:
    <plugin>
      <groupId>com.github.eirslett</groupId>
      <artifactId>frontend-maven-plugin</artifactId>
      <version>1.12.1</version>
      <executions>
        <execution>
          <id>install node and npm</id>
          <goals>
            <goal>install-node-and-npm</goal>
          </goals>
        </execution>
        <execution>
          <id>npm install</id>
          <goals>
            <goal>npm</goal>
          </goals>
        </execution>
        <execution>
          <id>npm run build</id>
          <goals>
            <goal>npm</goal>
          </goals>
          <configuration>
            <arguments>run build</arguments>
          </configuration>
        </execution>
      </executions>
    </plugin>

这种集成方式可以在 Maven 构建过程中自动处理 React 项目的构建,确保前后端资源同步更新。

标签: springmvcreact
分享给朋友:

相关文章

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态文…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

react 如何精通

react 如何精通

掌握核心概念 深入理解React的基础概念,包括组件(函数组件与类组件)、状态(useState)、生命周期(useEffect)、Props传递、虚拟DOM与Diff算法。通过官方文档或《React…

如何监控react性能

如何监控react性能

使用 React Profiler API React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,…

react如何重写alert

react如何重写alert

重写 React 中的 alert 方法 在 React 中,直接使用原生 alert 会破坏用户体验,通常需要自定义弹窗组件替代。以下是实现方法: 使用自定义弹窗组件 创建可复用的弹窗组件,替代原…