浅谈几种Java Web框架对自动重加载的支持
【IT168分析评论】
当我们在编写软件的过程中,编译,构建,测试的周期的速度直接影响着开发者的生产效率,如果我们必须重新编译,重新构建应用程序,并且重新部署,还有可能重新启动服务器,这将花费很长的时间从而减缓了开发的速度。
一些构建应用程序的平台,特别这些使用动态和脚本语言的,他们允许开发者对应用程序做出修改(代码,模板和配置)并且能够立即看到修改后的结果。
这些有着不同的叫法,例如有的叫自动重新加载,有的叫热部署,平台对和框架对这些性质支持的程度对开发者开发和维持一个web应用程序的效率有着重要的影响。
在Java中自动重新加载
大多数Java web框架都支持自动重新加载,通常以页面模板的标准开始,例如,在一个web应用程序中修改JSP文件,应用服务器就能够检测到所做的变化并能重新运行。
随着web应用程序不断变得复杂,要求重启服务器的时间也会增加,而自动重新加载可能需要更多的时间并有更多的限制,特别的与Rails上的Ruby相比更是如此。
最近几个Java web框架宣布已经增强了对自动重新加载的支持,下面对一些流行的Java web框架进行比较:
Grails
Grails 支持自动重新加载(auto-reloading)带有一些限制:
如果事务属性被设置为false,服务通常仅被重新加载。
在运行时,域的类要与数据库重新映射。如果通过'dbCreate'属性的'update'设置,数据源被配置为自动产生数据
库 ,那么数据源将尽可能更新数据库。改变域类偶尔的要求应用程序重启。
Seam
Seam 1.2.1已经引进了热部署的功能,只有支持Seam JavaBean,并不支持实体运行,也不能支持EJB3组件。
Spring MVC & Web Flow
Spring 2.0.4 允许Spring MVC发报机被重新加载,Spring对支持动态语言就允许在 Beanshell和Groovy中写控制器和验证器,可以不用重启应用就可以重新刷新。
Spring Web Flow与Spring MVC一起使用,Struts 1和2与JSF能够进行导航和web应用程序的状态管理,可以使流能够被重新构建而不用重启服务器。
另外,Spring IDE 2.0支持Spring Web Flow,可以使用Spring IDE 2.0对导航逻辑以图形的方式做出变化,这些变化立刻生效。不用使容器重启。
Struts 2
Struts 2可以使行为重新加载,当他们改变时。
Tapestry 5
在一个开发模型中,Tapestry 4支持HTML模板和页面属性的重新加载,Tapestry 5增加了活动类和模板重新加载的支持。
像其他框架一行,有一些限制:
自动重新加载通常不对JAR文件的资源进行支持。
既然重新加载使用类加载,当与没有被加载的类进行通讯时,这就可那导致ClassCastExceptions 异常。
如果保持对重新加载类引用,则有可能导致内存泄漏。
0
相关文章
- 如何学习网络数据库的基本技能?任朝阳 · 2024-11-29
- 主流国产数据库的存储引擎任朝阳 · 2024-11-19
- 企业数字化转型建设期间的那些省钱之道任朝阳 · 2024-07-25
- 使用主动元数据实现数据质量任朝阳 · 2024-04-24
- 如何管理和应用非结构化数据:示例、工具、技术和实践任朝阳 · 2024-02-05
- 图数据库选型:Neo4j、JanusGraph、HugeGraph任朝阳 · 2024-01-22
- 2024年数据分析的五大趋势和应对措施任朝阳 · 2024-01-22
- 图数据库在主机安全的应用探索任朝阳 · 2024-01-18
- 图查询语言的历史回顾短文任朝阳 · 2024-01-18
- 提升效率和用户体验,携程门票活动商品结构演进任朝阳 · 2023-10-16