在开发中大型的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中运行即可。

转载于:https://www.cnblogs.com/waliwaliwa/p/7222258.html

如何在开发时部署和运行前后端分离的JavaWeb项目相关推荐

  1. 前后端分离的项目部署到tomcat_如何在开发时部署和运行前后端分离的JavaWeb项目...

    在开发中大型的JavaEE项目时,前后端分离的框架逐渐成为业界的主流,传统的单机部署前后端在同一个项目中的工程项目越来越少.这类JavaWeb项目的后端通常都采用微服务的架构,后端会被分解为诸多个小项 ...

  2. 超详细!4小时开发一个SpringBoot+vue前后端分离博客项目!!

    小Hub领读: 前后端分离的博客项目终于出来啦,真是花了好多心思录制咧.文末直接进入B站看视频哈! 作者:吕一明 项目代码:https://github.com/MarkerHub/vueblog 项 ...

  3. Nginx+uwsgi+celery+supervisor部署Django前后端分离项目

    转载 Nginx+uwsgi+celery+supervisor部署Django前后端分离项目 ljmict 0人评论 3887人阅读 2018-08-08 01:29:45 本实验实现了负载均衡.反 ...

  4. 一款小清新的 SpringBoot+ Mybatis 前后端分离后台管理系统项目

    今日推荐 推荐3个快速开发平台 前后端都有 项目经验又有着落了推荐一个高仿微信的项目 有点屌!!一二线城市知名 IT 互联网公司名单(新版) 项目介绍 前后端分离架构,分离开发,分离部署,前后端互不影 ...

  5. SpringBoot+vue前后端分离博客项目

    SpringBoot+vue前后端分离博客项目 Java后端接口开发 1.前言 2.新建Springboot项目 3.整合mybatis plus 第一步:导入jar包 第二步:然后去写配置文件: 第 ...

  6. 使用SpringBoot + Vue (若依前后端分离版) 写项目的一些总结(持续更新...)

    使用SpringBoot + Vue(若依前后端分离版) 写项目的一些总结 获取Redis服务 @Autowired private RedisCache redisCache; String cap ...

  7. springboot jwt token前后端分离_基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目...

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

  8. 前后端分离的webgis项目(二)

    前后端分离的webgis项目(二) 二. 前端vue+leaflet 首先你得安装nodejs并配置环境,看这里,然后安装vue-cli,用它来快速新建项目 可以使用下列任一命令安装 npm inst ...

  9. 移动端开发者眼中的前端开发流程变迁与前后端分离

    写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈,从而对前端开发的相关概念形成初步的认识. 本文会提供一 ...

  10. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发

    文章目录 1. 前言 2. 新建Springboot项目 3. 整合mybatis plus 第一步:导依赖 第二步:写配置文件 第三步:mapper扫描+分页插件 第四步:代码生成配置 第五步:执行 ...

最新文章

  1. Apache IoTDB v0.12.5 发布!
  2. 手撕FSG2.0壳(有坑点)
  3. Integer类对象池与==问题:Integer a=34556,b=34556;但a==b为false
  4. Navicat导出表结构
  5. LiveVideoStack调查问卷
  6. JQuery放大镜效果
  7. linux命令查看磁盘使用情况,linux查看磁盘使用情况命令
  8. MS Sql中取每个表的大小,行数
  9. 去掉字符串不需要的HTML标记(正则表达式)
  10. Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
  11. 软件工程第一次作业——数独的求解与生成
  12. IIS无法启动计算机上的服务W3SVC如何修复、万维网发布服务(w3svc)已停止解决办法
  13. 亚马逊云科技赋能全新基于云的安全SaaS平台——安智联365
  14. 华为Mate40 Pro 66w充电器冒火花怎么回事?
  15. Google 出的C++轻量级日志库_GLog_了解_使用
  16. ppt6计算机考试,全国计算机考试第6章 过程.ppt
  17. 产品引流如何设计引流诱饵?引流如何选择诱饵?
  18. logistic回归的一些直观理解(1.连接函数 logit probit)
  19. 使用CANalyzer搭建LIN通信网络
  20. RS-一般推荐(CF系列)-2020:RaCT

热门文章

  1. LINUX剪贴板调用接口获取数据
  2. JDK使用VolatileImage可以有效改进刷屏
  3. 纽微特纪事:吾是如何被架空的(各位引以为戒)
  4. UBUNTU安装OpenOffice
  5. 如何在一个bat批处理文件中调用另一个bat批处理文件?
  6. Day_05 显示字符串
  7. 包打包和解析过程 unity_Unity AssetBundle 解析 (一)AB包介绍与构建
  8. winform 实现qq代理_「设计模式」代理模式:神奇的代理模式,节省了我80%开发时间...
  9. VS C++ memcpy() 用于double、int、结构体
  10. python 进位_Python中常见的数制转换的说明