Spring Boot与React集成的示例代码

网友投稿 606 2023-01-19


Spring Boot与React集成的示例代码

前言

前不久学习了Web开发,用React写了前端,Spring Boot搭建了后端,然而没有成功地把两个工程结合起来,造成前端与后端之间需要跨域通信,带来了一些额外的工作。

这一次成功地将前端工程与后端结合在一个Project中,记录一下,也希望能帮到那些和我一样的入门小白。

环境

Windows 10 - x64, java 1.8.0, node v8.9.4, npm 6.1.0

前奏

*JDK, Node 和 NPM请自行安装

新建一个Spring Boot工程

在Intellij里选择Spring Initializer新建,

依赖添加devTool和Web

随后就初始化了后端的Spring boot项目

在Spring boot项目的文件夹内,新建一个React工程,推荐用create-react-app,没有的话通过npm安装到全局

// npm install -g create-react-app

create-react-app frontene

主曲

添加Maven插件frontend-maven-plugin

  

    

      

      com.github.eirslett  

      frontend-maven-plugin  

      1.6  

     ...  

    

frontend-maven-plugin可以在打包时build react项目,并将build得到的前端页面文件放入指定位置。

配置frontend-maven-plugin

install node and npm

install-node-and-npm

v8.11.1

5.6.0

http://npm.taobao.org/mirrors/node/

npm install

npm

install

npm run-script build

npm

run-script build

target

frontend

Maven这一插件会依次执行install-node-and-npm, npm install, npm run-script build三条命令。

配置中的installDirectory指定了node和npm的安装位置,在jar包中安装node和npm确保在没有安装node和npm的机器上jar包依然可以运行,如果安装了则会屏蔽全局的node和npm。

WorkingDirectory值为前端项目package.json文件所在路径,插件会自动在workingDirectory下运行npm install和npm run-script build命令。

Webpack 配置

通过create-react-app生成的项目里并没有webpack的配置,在frontend里npm run eject,会弹出许多个文件夹,config下可以看见与webpack相关的多个配置文件。

这里需要修改paths.js 中的 module.exports = { ... },修改后如下

module.exports = {

dotenv: resolveApp('.env'),

appBuild: resolveApp('../src/main/resources/static/'), // 设置build所产生的文件的放置位置

appPublic: resolveApp('../src/main/resources/static/'), // 设置public文件夹内文件在build后的存放位置

appHtml: resolveApp('public/index.html'),

appIndexJs: resolveApp('src/index.js'),

appPackageJson: resolveApp('package.json'),

appSrc: resolveApp('src'),

yarnLockFile: resolveApp('yarn.lock'),

testsSetup: resolveApp('src/setupTests.js'),

appNodeModules: resolveApp('node_modules'),

publicUrl: getPublicUrl(resolveApp('package.json')),

servedPath: getServedPath(resolveApp('package.json')),

};

尾声

前后端工程结合通过以上一些操作就可以实现一个工程开发,同时前后端仍然是解耦的,仅测试前端效果只需要在前端文件下用node运行。

实践证明,在前端应用react-router并不需要对后端作其他配置。

这篇博文只是将Spring Boot和React结合到一个项目里的一次简单的尝试,本人Web开发并不精通,恳请高手斧正。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口管理工具开源(java接口管理工具)
下一篇:详解Springboot应用启动以及关闭时完成某些操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~