上周一位同事完成了Web应用开发的热部署实现,主要用于web应用程序的开发调试阶段,免去了开发人员每次修改都要从新部署应用的麻烦。今天研究了一下热部署实现的源代码,感觉,思路清晰,实现原理简单,非常值得学习!
主要分两个部分实现:
1. eclipse插件客户端。提供针对IJavaProject类型的右键菜单Action来对eclipse工程进行debug,run,compile操作,本质实现基于eclipse的debug功能,把选中的project动态的部署到tomcat的maven插件中(经过扩展)
2. tomcat maven插件扩展,添加热部署功能,继承了org.codehaus.mojo.tomcat.RunMojo类,主要就是在调用对应Mojo类execute中,把之前运行态下的class和jar包删掉,从而使得class和jar包可以获得更新的机会(有点被动),这样运行时总是被修改过的类和jar包了。
由于其中涉及到的技术自己也不是很了解,可能有理解错误的地方,但大体的思路应该是这样,有时间可以更深一步了解相关涉及到的技术!
主要技术:
1. eclipse debug框架
2. maven tomcat plugin以及扩展机制
3. classworlds.jar包的使用(好像是对classloader的增强?线下在好好了解一下)
分享到:
相关推荐
公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问题,新增jsp页面会实时部署,修改过的jsp页面就无法正常...
MeyboMail Web 是一个基于 Java 的开源邮件发送系统,旨在简化 Java 毕业设计方案。该系统提供了强大的邮件发送功能,包括群发、邮件合并、邮件追踪等,...此外,它还支持热部署,使得毕业生可以轻松地修改和调试代码。
一个MERN fullstack的Web应用程序。 如需现场演示结帐,请基于: Boss Starter (一个管理仪表板模板1 )和React Boilerplate (第二个官方的React样板2) ,一个具有最佳开发人员体验并专注于性能和最佳实践的高度...
财 务系统,web应用,视频应用等,都需要硬件服务器来支持,而利用传统的方式,硬件的采购 周期加上软件环境的搭建周期,整个系统的部署时间少则一周,多达一月,上线时间长。 综上所述,为解决服务器数量增加所带来的问题,...
微服务设计与解决方案 微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所以火热也是因为相对之前的应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更的大环境。 本文将介绍微服务架构的演进、优...
HV-SCADA-WEB版电力监控系统软件,为用户提供一个灵活部署,实时在线,24小时随时随地访问管理的可靠,灵活且高性能的电力监控方案,帮助用户实现在线监测,自动预警告警,提前做出预防式维护,减少断电时间,提高...
总论:以Java技术为基础的J2EE构架为企业提供了一个快速构造大型,可伸缩的,...该容器具有部署界面,允许进行热部署和热重配,能够真正实现24x7工作。iPortal应用服务器的独特构架使得EJB容器和Web容器可以被充分分布
IBM WebSphere Application Server Liberty Core on OpenShift 手册A. 概要这是关于什么的我们创建了一个 IBM WebSphere ...) 完整的构建和部署生命周期(与 JBoss EAP 卡盒一样) 热部署使用 Web 流量进行 Auto Scali
:high_voltage: 只需一个npm命令即可将您的应用程序部署到生产环境 :construction_worker: 持续维护 :clinking_beer_mugs: 快速开始 获取,然后转到您的项目根目录(也可在 。 在开始之前,将config
Mevitco ProFile-简单的大文件传输解决方案此存储... Azure Web应用程序(P1V2) Azure存储帐户(热,RA-GRS)容器解决方案的预配置您需要提供的参数:订阅资源组(新的或现有的)配置文件名称:网站名称和存储帐户。必
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...
web应用防火墙 modsecurity NEC的 siteshell 网站安全漏洞扫描 信息加密技术及密钥安全管理 案例: CSDN 信息加密技术分类 单项散列加密 对称加密 非对称加密 密钥安全管理 将密钥和...
开发Web应用 i. 26.1. Spring Web MVC框架 i. 26.1.1. Spring MVC自动配置 ii. 26.1.2. HttpMessageConverters Spring Boot参考指南 3 iii. 26.1.3. MessageCodesResolver iv. 26.1.4. 静态内容 v. 26.1.5. 模板...
热装模块SFN提供了一种模块解决方案,使您可以在修改源文件后立即重新加载模块和功能,而无需重新启动过程。 并且在部署时,重新启动远程服务不会破坏应用程序。运行测试SFN当前不提供框架的任何单元测试(但依赖...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...
3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...
3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...
15.2 Web数据库的工作原理 240 15.3 使用PHP操作MySQL数据库 240 15.3.1 数据库服务器的连接与断开 241 15.3.2 选择数据库 242 15.3.3 执行SQL语句 242 15.3.4 获得查询结果集中的记录数 243 15.3.5 获得结果集中的...
应用提供可扩展的高性能数据存储解决方案。?MongoDB?是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”...