文档章节

IDEA2016 + tomcat 设置热部署

Dylan1009
 Dylan1009
发布于 2017/08/27 11:46
字数 687
阅读 17
收藏 0
点赞 0
评论 0

IntelliJ Idea

之前一直是使用 Eclipse+Jetty 开发的,然而在一次OSX系统更新之后,eclipse居然由于版本过低打不开了(各种震惊、悲伤与无奈)。。。。于是一怒之下换成了IDEA+Tomcat。
下面就来讲一下如何用Idea+Tomcat实现热部署。

热部署好处

什么是热部署呢?举例来说,就是如果你启动了一个应用,但是突然改写了一个文件,如果要使这个改动生效,我们通常需要重新启动这个应用,然而这个启动过程可能会花费很长时间。
那有没有其他办法可以既使改动生效,又不至于去浪费时间重启应用呢?有!那就是热部署。热部署可以在你改动文件之后,系统自动或人工手动触发重新加载class的机制,从而实现不需要启动整个应用,却能使改动生效的效果。

热部署配置

  1. 本文默认你的IDEA已经安装了Tomcat,没有安装的请先去安装,安装方法略;
  2. 打开Edit Configurations;

  3. 选择已有的server或者点击左上角新建一个server;

  4. 选择Deployment,点击左下角的+号,选择Artifact,然后选择你对应的项目;

  5. 选好后是下面这个样子,右侧可以编辑你的项目路径;

  6. 选择Server,主要有以下几点需要注意:
    • VM options: 如果你的tomcat打印出来的日志乱码,那么把这项设置为-Dfile.encoding=UTF-8
    • On 'Update' action: 执行Update时的操作,为了实现热部署,这项一定要选择Update classes and resource
    • On frame deactivation: 这项根据我的观察,如果选择Update classes and resource,会在你最小化Idea或者切换到其他应用后自动进行热部署

  7. 保存;
  8. debug启动。(注意一定要debug启动!)

测试

  1. 写一个简单的接口;
    @Controller
    @RequestMapping("/inter/mytest")
    public class TestJsonController {
     @RequestMapping(value = "test", method = RequestMethod.POST)
     @ResponseBody
     public String phoneChange(@RequestBody String param){
         System.out.println("参数: "+param);
         System.out.println("初始");
         return param;
     }
    }
  2. 对接口发起一个请求,查看Output;

  3. 接下来我们修改一下代码;

    @Controller
    @RequestMapping("/inter/mytest")
    public class TestJsonController {
     @RequestMapping(value = "test", method = RequestMethod.POST)
     @ResponseBody
     public String phoneChange(@RequestBody String param){
         System.out.println("参数: "+param);
         System.out.println("改变");//将 ‘初始’ 改成 ‘改变’
         return param;
     }
    }
  4. 注意了!这里需要点击一下Update;

  5. 选择第二项,然后点OK;

  6. 然后左下角会提示 "1 class reloaded" ,证明你的修改已经成效了;

  7. 再次发起请求测试,后发现输出已经变了。

至此,大功告成!



作者:夜_雪
链接:http://www.jianshu.com/p/4409878590cc
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

© 著作权归作者所有

共有 人打赏支持
Dylan1009
粉丝 4
博文 111
码字总数 128877
作品 0
广州
程序员
我在开源社区下载了一个权限管理的项目,部署之后不知道如何访问jsp页面,求指点

本地环境:Idea2016, jdk1.7 Tomcat7 项目下载网址:https://github.com/Jdoing/myweb 最近在学习idea,所以下载安装了idea2016及其插件,想下个项目来学习但是不懂得如何访问其中的jsp页面,...

在我的歌声里
2016/09/21
137
1
IDEA2016下配置JRebel 7.02

IDEA2016下配置JRebel 7.02 1、安装JRebel插件。 2、下载JRebel破解文件 3、通过破解文件破解: copy jrebel.jar C:Usersleizm.IntelliJIdea2016.2configpluginsjr-ide-idealibjrebel copy ......

leizhimin
2017/06/20
0
0
Eclipse Maven Tomcat的利用配置

1.事先准备 m2eclipse插件中其实内嵌了Maven,但个人更偏向于用独立的Maven(可以自由选择版本啦,偶尔可以在命令行中跑Maven命令啦)。 下载Apache Maven:http://maven.apache.org/,关于环...

躺着的S
2013/08/03
0
4
liudajiang/inServer

#inServer 内置Web服务器,实现以main方法启动web项目,自动检测代码修改并热部署 ###传统web项目开发部署方式对比: - 项目不再要求是web项目,可以是java se项目,maven simple project - ...

liudajiang
2016/07/14
0
0
使用Maven如何debug和热部署

最近尝试将项目用Maven管理,Maven管理能力确实不错,但在开发时,却遇到了一些问题,望大家指点: 1、debug问题: 我是使用Maven的tomcat插件:tomcat-maven-plugin在eclipse里直接集成tom...

nick_chen
2013/01/21
31.8K
10
eclipse开发配置热部署jrebel

下载jrebel。我提供了一个在百度网盘,链接:http://pan.baidu.com/s/1c0ztkYk 密码:brfi, 解压即可使用。本人放在D盘根目录。 eclipse安装jrebel插件。我直接采用在线安装。安装过程:ecl...

围城北
2015/02/28
0
2
Java web热部署 (Javarebel实现真正高效的tomcat热部署)

Java web开发部署效率浅析 在进行java web程序开发过程中,经常遇到这种问题,修改一个java文件(*.java),需要重启web服务器(如tomcat,weblogic等),部署项目。而起/停服务器浪费了大量的...

coolcooldee
2013/06/04
5.4K
8
springboot使用jrebel热部署没用,怎么破?

最近用起了springboot来,用jrebel没用。到底怎么回事呢?? springboot是用maven来加载jar包的,以前都是自己手动添加的,没用maven。jrebel的热部署用得很好,也不用什么麻烦设置。 今天,...

HardMan
2016/06/05
1K
2
Eclipse JSP 热部署

Date:2012-10-16 Environment:Eclipse 4.2,Tomcat 7 昨天,我将Eclipse的JSP项目部署到tomcat的webapps目录下.然后运行网站. 我在eclipse下修改JSP网页内容或直接在webapps的项目中修改,刷新浏...

陈好
2012/10/16
0
0
Tomcat的简单介绍,安装,以及简单的配置运用

Tomcat介绍: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache ...

大飞侠大虾
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
10
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部