欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot與React集成的示例代碼

 更新時(shí)間:2018年11月04日 11:32:29   作者:Higher_Stark  
這篇文章主要介紹了Spring Boot與React集成的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前言

前不久學(xué)習(xí)了Web開發(fā),用React寫了前端,Spring Boot搭建了后端,然而沒有成功地把兩個(gè)工程結(jié)合起來,造成前端與后端之間需要跨域通信,帶來了一些額外的工作。

這一次成功地將前端工程與后端結(jié)合在一個(gè)Project中,記錄一下,也希望能幫到那些和我一樣的入門小白。

環(huán)境

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

前奏

*JDK, Node 和 NPM請(qǐng)自行安裝

新建一個(gè)Spring Boot工程

在Intellij里選擇Spring Initializer新建,

依賴添加devTool和Web


隨后就初始化了后端的Spring boot項(xiàng)目

在Spring boot項(xiàng)目的文件夾內(nèi),新建一個(gè)React工程,推薦用create-react-app,沒有的話通過npm安裝到全局

// npm install -g create-react-app
create-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可以在打包時(shí)build react項(xiàng)目,并將build得到的前端頁(yè)面文件放入指定位置。

配置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這一插件會(huì)依次執(zhí)行install-node-and-npm, npm install, npm run-script build三條命令。

配置中的installDirectory指定了node和npm的安裝位置,在jar包中安裝node和npm確保在沒有安裝node和npm的機(jī)器上jar包依然可以運(yùn)行,如果安裝了則會(huì)屏蔽全局的node和npm。

WorkingDirectory值為前端項(xiàng)目package.json文件所在路徑,插件會(huì)自動(dòng)在workingDirectory下運(yùn)行npm install和npm run-script build命令。

Webpack 配置

通過create-react-app生成的項(xiàng)目里并沒有webpack的配置,在frontend里npm run eject,會(huì)彈出許多個(gè)文件夾,config下可以看見與webpack相關(guān)的多個(gè)配置文件。

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

module.exports = {
 dotenv: resolveApp('.env'),
 appBuild: resolveApp('../src/main/resources/static/'),   // 設(shè)置build所產(chǎn)生的文件的放置位置
 appPublic: resolveApp('../src/main/resources/static/'),  // 設(shè)置public文件夾內(nèi)文件在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')),
};

尾聲

前后端工程結(jié)合通過以上一些操作就可以實(shí)現(xiàn)一個(gè)工程開發(fā),同時(shí)前后端仍然是解耦的,僅測(cè)試前端效果只需要在前端文件下用node運(yùn)行。

實(shí)踐證明,在前端應(yīng)用react-router并不需要對(duì)后端作其他配置。

這篇博文只是將Spring Boot和React結(jié)合到一個(gè)項(xiàng)目里的一次簡(jiǎn)單的嘗試,本人Web開發(fā)并不精通,懇請(qǐng)高手斧正。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java如何對(duì)接企業(yè)微信的實(shí)現(xiàn)步驟

    java如何對(duì)接企業(yè)微信的實(shí)現(xiàn)步驟

    本文主要介紹了java如何對(duì)接企業(yè)微信的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋)

    java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋)

    這篇文章主要介紹了java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • idea編譯器工程out目錄修改方法步驟

    idea編譯器工程out目錄修改方法步驟

    多個(gè)工程在一個(gè)文件夾下,有時(shí)會(huì)變?yōu)樗械墓こ讨挥靡粋€(gè)out文件夾,這時(shí)運(yùn)行會(huì)出錯(cuò),所以本文就來介紹一下out目錄修改,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • springboot整合騰訊云短信開箱即用的示例代碼

    springboot整合騰訊云短信開箱即用的示例代碼

    這篇文章主要介紹了springboot整合騰訊云短信開箱即用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • springmvc HttpServletRequest 如何獲取c:forEach的值

    springmvc HttpServletRequest 如何獲取c:forEach的值

    這篇文章主要介紹了springmvc HttpServletRequest 如何獲取c:forEach的值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java 淺復(fù)制和深復(fù)制的實(shí)例詳解

    Java 淺復(fù)制和深復(fù)制的實(shí)例詳解

    這篇文章主要介紹了Java 淺復(fù)制和深復(fù)制的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Java使用poi-tl1.9.1生成Word文檔的技巧分享

    Java使用poi-tl1.9.1生成Word文檔的技巧分享

    本文將簡(jiǎn)單介紹poi-tl的相關(guān)知識(shí),通過一個(gè)實(shí)際的案例實(shí)踐,充分介紹如何利用poi-tl進(jìn)行目標(biāo)文檔的生成,同時(shí)分享幾個(gè)不同的office版本如何進(jìn)行圖表生成的解決方案,需要的朋友可以參考下
    2023-09-09
  • Jmeter邏輯控制器事務(wù)控制器使用方法解析

    Jmeter邏輯控制器事務(wù)控制器使用方法解析

    這篇文章主要介紹了Jmeter邏輯控制器事務(wù)控制器使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java中有界隊(duì)列的飽和策略(reject policy)原理解析

    Java中有界隊(duì)列的飽和策略(reject policy)原理解析

    這篇文章主要介紹了Java中有界隊(duì)列的飽和策略(reject policy)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    這篇文章給大家介紹了SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03

最新評(píng)論