Seam里使用@In来做依赖注入真的很方便
但有一点是需注意的是
在框架调用Bean的任何方法时 @In都会工作
包括在调用getter/setter方法时 万恶吧-_-!
单是Seam还没问题 但配合上JSF框架 问题就来了
JSF对于getter方法的调用频繁程度大家是清楚的
一个稍复杂的页面调用getter方法几百次是很正常的
如果@In了4个组件 注入将达到1000多次
即使@In是内存级的操作 也需要耗费几十毫秒
所以对于那些需要绑定到JSF页面的组件(也就是传说中的action层)
使用@In的时候可要注意了
下面给出两个解决方案:
一、将action层的所有getter/setter方法都用
@BypassInterceptors注释上 跳过自动注入
(PS:打死我也不这么干,还不累死...就算没累死,也被这种代码恶心死了,我采取的是第二种O(∩_∩)O)
二、action层干脆就不使用@In 而是使用
UserManager userManager = (UserManager) Component.getInstance(UserManager.class);
这种手动方式来获取组件
经测试,系统好像真快了...
(90%是心里作用)
分享到:
相关推荐
在“seam2 in tomcat lib”这个主题中,我们将探讨如何在不使用EJB的情况下,在Tomcat中设置和运行Seam2项目。 首先,我们需要理解Seam2的核心特性。Seam2提供了组件模型、事件驱动机制、强大的数据绑定和转换、...
《Seam in Action》是一本专门探讨Seam框架的书籍,该书分为中文和英文两个版本,对于初学者和有经验的开发者来说都是一个宝贵的资源。Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、...
5. **持久化与数据访问**:研究Seam如何通过JPA进行数据存储和检索,以及Seam的缓存和查询优化功能。 6. **国际化与本地化**:学习如何在Seam项目中实现多语言支持。 7. **测试与调试**:掌握Seam的测试工具和策略,...
《Seam in Action》这本书是关于JBoss Seam框架的一部权威指南,由业界专家撰写,旨在帮助开发者深入了解和高效使用Seam。JBoss Seam是一个开源的企业级Java框架,它将JavaServer Faces (JSF)、Java Persistence API...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
《Seam in Action》这本书深度探讨了JBoss Seam这一轻量级Java EE 5.0框架,它旨在简化企业级应用程序的开发,提供了一种整合各种技术的强大方式。Seam的核心理念是消除Java EE组件之间的摩擦,使得开发过程更为流畅...
- `@Out`: 与`@In`相反,`@Out`用于将一个组件暴露出去,使其可以在其他地方被注入或访问。 - `@Create`: 这个注解标记了一个方法,表示在Seam上下文初始化时调用此方法。通常用来进行对象的初始化。 - `@...
### 关于《Manning Seam in Action 2008》的知识点详解 #### 一、书籍基本信息 **书名:**Manning Seam in Action 2008 **作者:**Dan Allen **出版时间:**2008年9月 **出版社:**Manning Publications Co. *...
此外,书中可能还会涵盖Seam与其他技术如Spring、Hibernate、RichFaces等的协同工作,以及如何利用Seam进行企业级应用的性能优化。 总的来说,《Seam In Action》翻译版是学习和掌握Seam框架的重要参考资料,对于想...
### 关于《Manning - Seam in Action》的知识点解析 #### 一、Seam概述与统一Java EE架构 - **Seam**:本书主要介绍的是JBoss Seam框架,这是一个为Java EE开发人员提供的进步的应用程序框架,它通过实现统一的...
- **书籍资料**:如《Seam in Action》等专业书籍是学习Seam的重要资源。 #### 七、总结 Seam作为一款强大的Java EE框架,通过其对Java EE 3技术的深度整合和创新应用,大大提升了开发效率和应用质量。无论是对于...
这里的`@In(create=true)`表示如果当前用户未创建,则自动创建。而`@Out`则表示当前用户对象将在使用前被设置为非空值。 #### @Unwrap `@Unwrap`注解用于解除包装,即返回组件的原始类型而非代理对象。通常用于与...
例如,`@Observes`注解可用于监听特定事件,而`@In`和`@Out`注解则用于在不同组件之间共享数据。 总的来说,这个“seam级联菜单例子”展示了如何在Seam环境中结合Ajax技术和JSF组件创建动态的、交互式的用户界面。...
通过阅读这份资料,你应该能掌握Seam框架如何利用语境相关的组件来优化Java EE应用的开发,以及如何在实际项目中应用这些概念。此外,你还可以了解到Seam的其他特性,如国际化、测试支持和性能优化等。总之,深入...
**Seam Carving 技术详解** Seam Carving,又称图像拉链,是一种基于能量最小化的图像调整方法,主要用于图像...在实际应用中,这一技术结合了图像处理、优化算法和数据结构,对于理解和掌握图像处理领域有重要意义。
Seam in Action 是一本关于Seam框架的专业书籍,中文版的第一章主要介绍了Seam的核心理念和价值。Seam是一个革命性的Java EE应用框架,旨在通过整合现有的Java企业级技术,如EJB3、JSF、JPA和Hibernate,提供一个...
7. **在JBoss 4.0下使用Seam**:由于JBoss 4.0版本较老,因此需要特别注意兼容性问题。 #### 第三章:上下文相关的组件模型 这一章深入探讨了Seam中的核心概念——组件模型,以及各种不同的上下文环境。 1. **...
而`no.txt`可能是项目的一些说明或者注意事项,例如编译和运行的指令等。 为了运行这段代码,你需要一个支持OpenCV的开发环境,如Visual Studio或Code::Blocks,并确保已正确配置OpenCV库。加载测试图像,编译并...
通过使用 Seam的注解驱动编程,如`@Name`和`@In`,可以轻松地注入依赖,使得代码更加简洁和可读。 Seam还包含了强大的事件模型,允许组件之间通过发布和监听事件来通信。例如,一个组件可以通过`EventContext`发布...
### JBoss Seam 相关知识点概述 #### 一、了解Seam项目结构及配置 **JBoss Seam** 是一个基于 **Java EE** 的框架,它主要用于简化企业级应用的开发。Seam 通过提供一系列的功能模块和服务,使得开发者能够更加...