IDEA2016 + tomcat 设置热部署
IDEA2016 + tomcat 设置热部署
Dylan1009 发表于3个月前
IDEA2016 + tomcat 设置热部署
  • 发表于 3个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

共有 人打赏支持
粉丝 2
博文 97
码字总数 111295
×
Dylan1009
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: