`
youngerbaby
  • 浏览: 112513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Web应用热部署方案

    博客分类:
  • Java
阅读更多

上周一位同事完成了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的增强?线下在好好了解一下)

分享到:
评论

相关推荐

    jboss 7.1.1 Final 的jsp热部署解决方案

    公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问题,新增jsp页面会实时部署,修改过的jsp页面就无法正常...

    MeyboMail Web 是一个基于 Java 的开源邮件发送系统,旨在简化 Java 毕业设计方案

    MeyboMail Web 是一个基于 Java 的开源邮件发送系统,旨在简化 Java 毕业设计方案。该系统提供了强大的邮件发送功能,包括群发、邮件合并、邮件追踪等,...此外,它还支持热部署,使得毕业生可以轻松地修改和调试代码。

    themis:业务规则版本控制和部署管理器。 Fullstack-JS Web应用程序

    一个MERN fullstack的Web应用程序。 如需现场演示结帐,请基于: Boss Starter (一个管理仪表板模板1 )和React Boilerplate (第二个官方的React样板2) ,一个具有最佳开发人员体验并专注于性能和最佳实践的高度...

    服务器虚拟化技术方案高校.doc

    财 务系统,web应用,视频应用等,都需要硬件服务器来支持,而利用传统的方式,硬件的采购 周期加上软件环境的搭建周期,整个系统的部署时间少则一周,多达一月,上线时间长。 综上所述,为解决服务器数量增加所带来的问题,...

    微服务设计与解决方案.docx

    微服务设计与解决方案 微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所以火热也是因为相对之前的应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更的大环境。 本文将介绍微服务架构的演进、优...

    汉光HOVA-SCADA-WEB电力监控系统 变配电电力监控系统.pdf

    HV-SCADA-WEB版电力监控系统软件,为用户提供一个灵活部署,实时在线,24小时随时随地访问管理的可靠,灵活且高性能的电力监控方案,帮助用户实现在线监测,自动预警告警,提前做出预防式维护,减少断电时间,提高...

    IONAiPortal应用服务器构架

    总论:以Java技术为基础的J2EE构架为企业提供了一个快速构造大型,可伸缩的,...该容器具有部署界面,允许进行热部署和热重配,能够真正实现24x7工作。iPortal应用服务器的独特构架使得EJB容器和Web容器可以被充分分布

    openshift-origin-liberty-cartridge:用于 IBM Liberty Cartridge 的 OpenShift v2 Cartridge

    IBM WebSphere Application Server Liberty Core on OpenShift 手册A. 概要这是关于什么的我们创建了一个 IBM WebSphere ...) 完整的构建和部署生命周期(与 JBoss EAP 卡盒一样) 热部署使用 Web 流量进行 Auto Scali

    koa-web-kit::rocket:具有React的现代,可用于生产的全栈节点Web框架

    :high_voltage: 只需一个npm命令即可将您的应用程序部署到生产环境 :construction_worker: 持续维护 :clinking_beer_mugs: 快速开始 获取,然后转到您的项目根目录(也可在 。 在开始之前,将config

    mevitco.profile.runtime:Mevitco Profile容器解决方案的运行时

    Mevitco ProFile-简单的大文件传输解决方案此存储... Azure Web应用程序(P1V2) Azure存储帐户(热,RA-GRS)容器解决方案的预配置您需要提供的参数:订阅资源组(新的或现有的)配置文件名称:网站名称和存储帐户。必

    超级有影响力霸气的Java面试题大全文档

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...

    网站架构技术

    web应用防火墙 modsecurity NEC的 siteshell 网站安全漏洞扫描 信息加密技术及密钥安全管理 案例: CSDN 信息加密技术分类 单项散列加密 对称加密 非对称加密 密钥安全管理 将密钥和...

    springboot参考指南

    开发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:一个简单而优雅的基于Web的Node.js服务框架

    热装模块SFN提供了一种模块解决方案,使您可以在修改源文件后立即重新加载模块和功能,而无需重新启动过程。 并且在部署时,重新启动远程服务不会破坏应用程序。运行测试SFN当前不提供框架的任何单元测试(但依赖...

    java 面试题 总结

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...

    Spring中文帮助文档

    3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...

    Spring API

    3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired ...

    php网络开发完全手册

    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 获得结果集中的...

    SpringBoot+MongoDB+Vue前后分离

    应用提供可扩展的高性能数据存储解决方案。?MongoDB?是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”...

Global site tag (gtag.js) - Google Analytics