如何在開發時部署和運行前后端分離的JavaWeb項目


在開發中大型的JavaEE項目時,前后端分離的框架逐漸成為業界的主流,傳統的單機部署前后端在同一個項目中的工程項目越來越少。這類JavaWeb項目的后端通常都采用微服務的架構,后端會被分解為諸多個小項目,然后使用dubbo+zookeeper或者springCloud來構建微服務,前端則會是一個單獨的項目,前台的請求通過微服務來調用。但是,不同與傳統的web項目,這類前后端分離的項目如何在開發中部署和運行呢?

當前后端分離時,后端項目一定會被加載到tomcat的webapp目錄下面,但是前端的資源院該如何被訪問到呢?這里以tomcat這個中間件為例,探討在開發這類項目的時候,如何讓前后端分離的項目部署並且運行起來,即后端項目部署在tomcat之后如何在運行時訪問靜態資源(非上線部署)。

主要有兩種方案:1.在本地通過Nginx來處理這些靜態資源。2、將靜態資源統一放入一個javaweb應用中,並將自動生成的war包隨后端項目一期丟入tomcat。下面詳細介紹

一、使用Nginx來訪問靜態資源。

在本地安裝nginx並且修改nginx.conf,修改相關配置,將web訪問的端口的資源進行更改,配置如下:

server { listen 80; server_name localhost; charset utf-8; #access_log logs/host.access.log main; location / { proxy_pass http://tomcat_pool; proxy_redirect off; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|eot|map)$ { root D:\Workspaces\esop-html; index index.html; }

listen對象改為你本地的tomcat訪問端口,最下面location中的root改為你前端項目中靜態資源的位置,這樣就可以實現只部署后端的項目就能訪問前端的頁面了。

二、將前端項目轉換為動態的web項目,隨后端項目一起丟入tomcat

這個方案省去了在本地安裝和配置nginx,但是也只適用於開發階段項目的部署運行和調試,真正在生產環境通常前后端項目會部署在不同的服務器。

  • 如果是Intellij Idea,在導入前端項目之后,右鍵項目 add framework support --> web application,這時將會把前端項目轉換為一個javaweb項目,然后將靜態資源放在生成的web目錄下即可。
  • 如果是eclipse,可以新建一個javaweb項目然后將靜態資源放入web或者webcontent目錄下,或者直接先導入前端項目,然后通過 project facts 將項目轉換為dynamic web項目並勾選 js等相關配置。

然后,運行項目時把后端的war包和前端的war包一同添加到 deployment中運行即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM