时间:2021-05-20
前言
前不久学习了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-appcreate-react-app frontene主曲
添加Maven插件frontend-maven-plugin
<plugins><plugin><!--https://mvnrepository.com/artifact/com.github.eirslett/frontend-maven-plugin--><groupId>com.github.eirslett</groupId><artifactId>frontend-maven-plugin</artifactId><version>1.6</version>...</plugin></plugins>frontend-maven-plugin可以在打包时build react项目,并将build得到的前端页面文件放入指定位置。
配置frontend-maven-plugin
<executions> <execution> <id>install node and npm</id> <goals> <goal>install-node-and-npm</goal> </goals> <configuration> <nodeVersion>v8.11.1</nodeVersion> <npmVersion>5.6.0</npmVersion> <nodeDownloadRoot>http://npm.taobao.org/mirrors/node/</nodeDownloadRoot> <!--<npmDownloadRoot>http://npm.taobao.org/mirrors/npm/</npmDownloadRoot>--> </configuration> </execution> <execution> <id>npm install</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>install</arguments> </configuration> </execution> <execution> <id>npm run-script build</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run-script build</arguments> </configuration> </execution> </executions> <configuration> <installDirectory>target</installDirectory> <workingDirectory>frontend</workingDirectory> </configuration>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 = { ... },修改后如下
尾声
前后端工程结合通过以上一些操作就可以实现一个工程开发,同时前后端仍然是解耦的,仅测试前端效果只需要在前端文件下用node运行。
实践证明,在前端应用react-router并不需要对后端作其他配置。
这篇博文只是将Spring Boot和React结合到一个项目里的一次简单的尝试,本人Web开发并不精通,恳请高手斧正。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
springboot集成mybatis关键代码如下:1,添加pom引用org.mybatis.spring.bootmybatis-spring-boot-st
这篇文章主要介绍了Spring-boot集成pg、mongo多数据源过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
SpringBoot集成activiti基础环境搭建添加依赖org.activitiactiviti-spring-boot-starter-basic6.0.
SpringBoot集成MyBatis和Pagehelper分页插件mybatis-spring-boot-starter依赖树如下:pom配置
本文章从头开始介绍Spring集成Redis的示例。Eclipse工程结构如下图为我的示例工程的结构图,采用Maven构建。其中需要集成Spring,因此需要b