seam能很好地支持 页面(faceslet)、非ejb class,各种page.xml的热部署,完全动态支持这些内容的增加、修改,但不支持删除。其中页面(faceslet)的热部署是有facelets自己管理的,与seam无关。
基本的配置seam官方文档讲解的都很清楚了,这里再简单罗列一下。可以详细查看seam官方文档
1)在components.xml中设置<core:init debug="true">,debug="false"取消热部署
2)将class放到 WEB-INF/dev目录下,默认是放到WEB-INF/class下的。
3)在components.xml中配置热部署filter的url<web:hot-deploy-filter url-pattern="*.seam" />,这样就只对.seam这样的请求进行热部署处理,静态资源不需要热部署,比如.jpg,.css,.js等都不需要热部署。
热部署原理
seam通过filter(HotDeployFilter)进行热部署,每次请求HotDeployFilter都会去扫描WEB-INF/dev下的class、各种xx.components.xml和各种xx.page.xml,如果有增加或修改就清空全部热部署相关的组件和组件实例,然后全部重建这些组件,当请求中用到组件实例时再去构造组件实例,这样会导致请求失效,再次访问就好了。
导致的性能问题
每次seam请求都会导致扫描全部热部署的资源,当热部署的资源越来越多时会导致大量的无用磁盘扫描,非常影响访问性能。绝大多数时候seam访问都是不需要热部署的,可以让正常的seam访问不走HotDeployFilter,只有当有修改需要热部署时,通过一个访问触发热部署,然后再正常seam访问即可。
这样配置<web:hot-deploy-filter url-pattern="*.seam1" />,需要热部署时就访问下xxx.seam1,页面会报错,但不用管,再次访问xxx.seam即可将修改的内容体现出来。
热部署限制
非热部署的class不能访问热部署的class,反过来则可以。比如不能在jsf验证器中调用热部署的class,因为jsf验证器是由web classloader加载的,web classloader加载不了热部署目录中的class。
可以通过seam组件方式加载,然seam去加载
validator=(IBusinessValidator) Component.forName(getValidatorClassName()).getBeanClass().newInstance();
不能热部署的资源
实体类,ejb目前都不能热部署
分享到:
相关推荐
- **热部署**: 介绍Seam支持的热部署特性,有助于提升开发效率。 #### 三、上下文相关的组件模型 ##### Seam上下文层次 - **无状态上下文**:主要用于临时性的交互操作,不保留任何状态信息。 - **事件上下文**:...
6. **热部署与增量部署**:讨论了Seam支持的动态部署特性,方便开发者在开发过程中实时查看更改效果。 7. **在JBoss 4.0下使用Seam**:由于JBoss 4.0版本较老,因此需要特别注意兼容性问题。 #### 第三章:上下文...
- **Seam与增量热部署**:支持热部署,提高开发效率。 - **在Jboss4.0下使用Seam**: - **安装JBoss4.0**:确保 JBoss 版本兼容。 - **安装JSF1.2RI**:满足 SEAM 的运行环境要求。 #### 四、上下文相关的组件...
- **Seam 与增量热部署**:介绍了如何利用 Seam 的增量热部署功能提高开发效率。 - **在 Jboss4.0 下使用 Seam**:这部分介绍了如何在 JBoss 4.0 上配置和运行 Seam 应用程序。 #### 第三章:上下文相关的组件模型 ...
10. **热部署**:Seam支持热部署,开发者在开发过程中无需重启服务器,提高了开发效率。 在阅读《Seam in Action》这本书时,读者会逐步学习到如何配置和搭建Seam环境,创建Seam项目,设计组件,处理事件,以及进行...
2 JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1...
- **增量热部署**:讨论了如何在开发过程中使用增量热部署功能,提高开发效率。 - **与JBoss 4.0集成**:提供了与旧版JBoss服务器集成的步骤。 综上所述,Seam 2.1 GA版本不仅在技术支持方面实现了重大突破,还在...
- **Seam and incremental hot deployment**:介绍如何利用 Seam 2.1 的热部署特性提高开发效率。 - **Using Seam with JBoss 4.0**:提供如何在 JBoss 4.0 上部署 Seam 2.1 应用的具体步骤。 通过以上对 Seam 2.1 ...
此外,Seam还支持热部署和即时编译,这意味着开发者可以在不重启服务器的情况下进行代码修改和测试,极大地提高了开发效率和迭代速度。 综上所述,《Seam in Action》这本书深入浅出地介绍了Seam框架的关键概念和...
与AppFuse相比,Seam提供了更简单、更高效的开发体验,尤其是在配合JBoss应用服务器进行热部署时,能够极大地提升开发效率。 **Seam的核心特性** 1. **集成性**:Seam将各种Java EE技术,如EJB、JSF、JPA、CDI、...
- **热部署与增量部署**:介绍了 Seam 支持的两种部署模式,使开发者能够在开发过程中快速迭代和测试。 - **在 JBoss 4.0 下使用 Seam**:针对旧版本的 JBoss 容器,给出了具体的安装步骤和注意事项。 #### 四、...
最后,文档还介绍了如何在JBoss中使用JSF 1.2 RI运行Seam应用,以及如何使用Seam-gen工具快速启动新项目,包括从数据库生成应用程序、部署为EAR包和增量热部署。 Seam的核心是其上下文相关的组件模型,包括无状态上...
- **Seam与增量热部署**: - 讨论了如何在开发过程中实现实时更新。 - **在Jboss4.0下使用Seam**: - 介绍了如何在特定版本的JBoss AS环境下使用Seam。 #### 三、上下文相关的组件模型 ##### 3.1 Seam上下文 - **...
10. **热部署**:Seam的开发环境支持热部署,即在应用运行时可以修改和更新组件,极大地提高了开发效率。 "seam-open18-phase2"可能涉及到对OpenJDK 1.8的优化,这意味着该版本可能利用了Java 8的一些特性,如...
为了提高开发效率,Seam提供了许多便捷的功能,如代码生成、即时编译、热部署等。这些工具和特性支持开发者在开发过程中进行快速迭代,大大缩短了从设计到上线的时间周期。此外,Seam还内置了一系列UI组件和工具,...
此外,JBoss AS(Application Server)的热部署功能使得开发者在开发过程中能够快速地测试和调试应用。 接下来,我们探讨Seam框架。Seam弥补了Java EE中的一些不足,它将JSF(JavaServer Faces)、EJB、CDI...
4. **热部署**:JBoss支持热部署,即在不中断服务的情况下更新应用程序,提高了开发和维护效率。 ### 二、配置JBoss 1. **配置文件**:主要的配置文件有standalone.xml和domain.xml,分别对应单服务器和集群模式。...
此外,Encore的热部署功能也极大地提高了开发效率,使得代码修改后无需重启服务器即可立即生效。 3. **Seam**: Seam是另一个重要的JBoss项目,它是一个全面的Java EE框架,整合了多种技术,如CDI(Contexts and ...