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

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

  1. 部署gradle_使用Gradle消除开发重新部署

    部署gradle 为了进行服务开发,我的团队最近从Grails转到了Dropwizard框架. 但是,我真正从Grails堆栈中真正错过的一件事是自动重新加载:对源文件的任何更改在保存后立即显示在运行 ...

  2. python怎么部署到tomcat_使用python将war部署到tomcat

    我正在尝试使用 python(2.4.2)将战争部署到Apache Tomcat服务器(Build 6.0.24),作为构建过程的一部分. 我正在使用以下代码 import urllib2 impor ...

  3. 【游戏开发】《Java游戏服务器架构实战》项目在windows上部署

    [游戏开发]<Java游戏服务器架构实战>项目在windows上部署 文章目录 [游戏开发]<Java游戏服务器架构实战>项目在windows上部署 一.配置项目基础环境 二. ...

  4. 刚开始用 Go 做项目开发时都会面临哪些问题?

    我身边几个朋友,当初掌握Go的时候都是硬赶着上架,语法还没完全掌握就投入到项目开发中.因为有了前人在企业项目里打好的基础,一开始我们就是写业务,感觉跟在前人定好的大纲里做填空题一样,后来慢慢上手后才更 ...

  5. 如何使用 IntelliJ IDEA(2020.2)构建一个JavaWeb项目

    如何使用 IntelliJ IDEA(2020.2)构建一个JavaWeb项目 针对 IntelliJ IDEA 2020.2 这个新版本,不管是在创建项目上,还是在进行一些选项的配置上,与之前的版本 ...

  6. IDEA整合Tomcat启动javaweb项目

    1.前言 突然兴起想要写这么一篇博客,不是因为别的,纯属是因为小编还是一个小白的时候,听某马和某硅谷的javaweb网课时,遇到这个章节一直启动不起来,虽然小编依旧是个菜鸡,但是今时不同往日了,小编已 ...

  7. IDEA-第一个Javaweb项目

    配置Tomcat服务器: 下载(略,附地址) 地址:https://tomcat.apache.org/ 以apache-tomcat-7.0.73为例 启动Tomcat 找到apache-tomca ...

  8. javaweb项目Error:Android Source Generator: [example] Android SDK is not specified

    javaweb项目混入android@java javaweb项目Error:Android Source Generator: [example] Android SDK is not specif ...

  9. 【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。 - CSDN博客

    前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦, 并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务 ...

最新文章

  1. MySQL中的条件赋值
  2. 【深度学习】最新「深度学习社区发现」综述论文,174篇文献概述六大类方法(含Github资源)...
  3. 一线大厂Java开发所需掌握的技能要点汇总
  4. Notepad++背景颜色设置
  5. MongoDB系列二
  6. Linux管理磁盘配额
  7. 操作系统学习笔记-01-1.1课程概述
  8. 开源Blog系统-欧式风格家具网站源码v1.5.4
  9. Flutter 绘图 Paint strokeCap 延伸类型 strokeJoin 拐角类型 图文分析
  10. 代替httpclient JAVA_除了HttpClient,Java还有什么类似HttpClient的技术
  11. Git学习总结(1)——Git使用详细教程
  12. String StringBuffer StringBuilder的异同
  13. css3盒子模型微课_CSS3 盒子模型
  14. SQL2000和SQL2005同时安装问题(转载)
  15. JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}
  16. 财子说丨王国斌:相信时间的力量
  17. 笔记本使用Nsight注意事项
  18. 概率图模型在图像处理中的应用
  19. 资深老狐一句感叹:白学了,猫猫究竟有什么魔力,一小时等于十年功?
  20. 90+目标跟踪算法九大benchmark!基于判别滤波器和孪生网络的视觉目标跟踪:综述与展望...

热门文章

  1. Java并发编程的艺术(十)——Java中的锁(5)
  2. ASP.NET Web API 2 过滤器
  3. webpack的一些常用配置 (转)
  4. Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结...
  5. Oracle 修改SYS、system用户密码
  6. rails3系统架构
  7. python --- 线程
  8. koa --- nunjucks
  9. Spring Cloud Zuul网关(快速搭建)
  10. Python多线程豆瓣影评API接口爬虫