热部署与热加载

news/2024/7/5 3:16:28 标签: java, 开发工具

为什么80%的码农都做不了架构师?>>>   hot3.png

1.热部署和热加载的概念

热部署:就是容器状态在运行的情况下重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是Tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成sessin丢失等情况.

热加载:就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的

在基于Java的实现热部署、热加载的过程中,类装入器扮演着重要的角色。类装入器不能重新装入一个已经装入的类,否则会报java.lang.LinkageError,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。一般debug模式都支持热加载。

2.JRebel 热部署
JRebel 的 Eclipse插件地址  http://www.zeroturnaround.com/update-site/update-site.zip

JRebel 是收费的要激活才能用,不过有试用期。

是否启用JRebel可以到Run configurations中设置.

这家伙占用内存较大,所以要把VM改大点:选中被运行的类,点击菜单‘run->run...’,选择(x)=Argument标签页下的vm arguments框里输入 -Xmx800m, 保存运行

每个要使用JReble的Project都需要单独设置

3.Tomcat 热部署

第一种方式

在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签: 
<Context debug="0" docBase="D:\demo1\web" path="/demo1" privileged="true" reloadable="true"/>

docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于webapps 

path:访问项目的路径,如:http://127.0.0.1:8080/demo1 

reloadable:是否自动加载新增或改变的class文件. 
debug属性与这个Engine关联的Logger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。 也就是程序异常时写入日志文件里的详细程度。

第二种方式和第一种差不多,但是不是在Server.xml文件中添加Context标签,而是在 

%tomcat_home%\conf\Catalina\localhost中添加一个XML文件,

如:demo1.xml,内容如下: 
<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="D:\demo1\web" reloadable="true" /> 
,只是缺少了path属性,如果你硬写个path="demo2"的话,是没有用的,tomcat不明确的告诉你:“我不认得”, 
这种方式服务器会使用xml文件的名字作为path属性的名字,SO访问地址为:http://localhost:8080/demo1 

转载于:https://my.oschina.net/shajin/blog/156551


http://www.niftyadmin.cn/n/1178033.html

相关文章

依那西普血清水平与强直性脊柱炎患者疗效无相关性

依那西普血清水平与强直性脊柱炎患者疗效无相关性 De Vries MK, Wolbink GJ, et al. EULAR 2007. Present ID: FRI0382. 背景&#xff1a;我们最近的一研究显示AS的Infliximab无效者与Infliximab外周血水平低以及和出现Infliximab抗体有关。 目的&#xff1a;评价AS的Etanercep…

php 服務器連接,cocos2d-x網絡編程 連接php服務器筆記4

VS工程部分----網絡編程本節會把最終實現代碼和資源放在文章最未提供各位下載學習。本節我們開始重頭戲聯網功能的開發&#xff0c;我用的是cocos2d-x綁定的curl庫&#xff0c;這個curl據說很火&#xff0c;雖然我本人了解的不多只曉得基本用法&#xff0c;讓大家見笑了。好了想…

烂泥:zabbix3.0安装与配置

本文由ilanniweb提供友情赞助&#xff0c;首发于烂泥行天下 想要获得更多的文章&#xff0c;可以关注我的微信ilanniweb 这个月又快过完了&#xff0c;最近也比较忙&#xff0c;没时间写文章&#xff0c;今天挤点时间把zabbix3.0安装与配置的文章写下来。 其实zabbix3.0的安装很…

Linux统计进程网络,Linux进程网络流量统计

原标题&#xff1a;Linux进程网络流量统计前言linux都有相应开源工具实时采集网络连接、进程等信息其中网络连接一般包括最基本的五元组信息(源地址、目标地址、源端口、目标端口、协议号)再加上所属进程信息pid, exe, cmdline)等。其中这两项数据大多可直接读取linux /proc目录…

MySQL 触发器结构及三个案例demo

--你必须拥有相当大的权限才能创建触发器&#xff08;CREATE TRIGGER&#xff09;&#xff0c;如果你已经是Root用户&#xff0c;那么就足够了。这跟SQL的标准有所不同。 CREATE TRIGGER语法 CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW…

设置UIScrollView只可以水平或者竖直滚动

UIScrollView里边包含多个UIWebView&#xff1a; 可以通过设置contentSize的值&#xff0c;设置其width为UIScrollerView可视区域的宽度&#xff1a;即UIScrollView的width&#xff0c;在设置一些alwaysBounceHorizontal之类的属性&#xff0c;那么就只能竖直方向滚动&#xff…

Windows 08R2_AD图文详解

目录 目录软件环境Active Directory域服务 AD的应用创建ADDS域使用Windows窗口来创建ADDS域控制器使用Powershell来创建ADDS域控制器检查ADDC域控制器是否安装成功添加新的管理工具 创建额外域控制器使用Windows窗口界面来安装额外域控制器使用Powershell脚本来安装额外域控制器…

Char 07 扩展命令

Desc : 扩展 并 添加 插件 或者 添加 模块 转载于:https://www.cnblogs.com/Nancy0401/p/5600200.html