本文由丁涛原创,转帖请注明出处:http://dingtao.iteye.com/
Seam组件可以通过方法间简单的调用相互影响。状态组件甚至实现 Observer/Observable 模式。 但在组件直接调用彼此方法的时候,为了使组件在一个比可能存在的更加松耦合的方式下相互作用,Seam提供了:组件驱动事件。
组件(事件产生者):
@Name("helloWorld")
public class HelloWorld {
@RaiseEvent("hello")
public void sayHello() {
FacesMessages.instance().add("Hello World!");
}
}
通过注解@RaiseEvent("hello"),组件中sayHello()的调用即会引发hello事件,
注意:
1. hello事件在这段代码之前是没有做过任何定义的,你可以随便写成什么名字,只要在后面事件消费者(事件监听器)里也使用这个名字即可;
2.
这个事件产生器没有依赖任何事件消费者,事件监听器现在可以完全不依赖于产生器而实现
事件消费者(事件监听器):
@Name("helloListener")
public class HelloListener {
@Observer("hello")
public void sayHelloBack() {
FacesMessages.instance().add("Hello to you too!");
}
}
通过注解@Observer("hello"),hello事件的发生即会引发调用sayHelloBack()
由此,一个相当松耦合的“组件——事件——监听器”的Observer/Observable模式在SEAM下产生了。
分享到:
相关推荐
此外,Seam还提供了事件驱动的通信机制,使得组件间可以利用事件进行非侵入式的交互。 Seam的另一个亮点是其对持久层的集成。通过与JPA的集成,开发者可以方便地进行数据库操作,如CRUD(创建、读取、更新和删除)...
2. **事件(Events)**: 事件模型是Seam的一大特色,允许组件之间通过发布和监听事件进行通信,增强了组件间的解耦合。 3. **注入(Injection)**: Seam支持依赖注入,可以将一个组件的实例自动注入到其他组件中,...
在Seam中,组件可以看作是应用中的独立单元,它们在特定的上下文中被创建、管理和销毁。上下文是Seam的一个重要概念,它定义了组件生命周期的边界以及组件之间的依赖关系。例如,一个会话上下文中的组件在整个会话...
每个Seam组件都有一个唯一的名称,用于在应用中引用该组件。 **3.2.8 定义组件范围(Defining the Component Scope)** 组件范围定义了组件的有效生命周期,例如页面级、会话级等。 以上内容全面覆盖了Seam2.0 ...
2. **事件驱动**:Seam支持基于事件的编程模型,使得在不同组件之间传递信息变得更加简单。这有助于实现松散耦合,让代码更易于维护和扩展。 3. **JSF集成**:Seam与JavaServer Faces紧密集成,提供了一种优雅的...
Seam的DI机制允许对象之间的依赖关系在运行时自动装配,减少了代码的耦合性。开发者可以使用注解(Annotations)来声明依赖,并让Seam负责查找和注入合适的依赖实例。例如,`@In` 和 `@Out` 注解分别用于注入和传出...
JFreeChart-1.0.5-Ch.chm提供了详细教程和示例,帮助开发者利用JFreeChart在Seam应用中展示数据。 **7. ANTLR** ANTLR 是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR中文...
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
Seam、EJB和JSF是Java开发中的三个重要框架,它们在企业级应用程序开发中发挥着关键作用。本文将详细讲解如何在Eclipse环境中创建并理解一个Seam工程的实例,结合EJB(Enterprise JavaBeans)和JSF(JavaServer ...
2. **事件驱动**:Seam基于事件驱动的设计,使得组件间的通信变得更加灵活。开发者可以通过发布和监听事件来实现松耦合的交互。 3. **JSF集成**:Seam与JavaServer Faces紧密集成,提供了一套完整的解决方案来构建...
- **直接使用EJB3 Beans**:Seam 允许开发者直接使用EJB3 Beans作为JSF的Backings Beans,这意味着可以在同一个类中处理UI事件和数据库操作,极大地简化了开发流程。 - **双向依赖注入**:Seam支持在JSF页面和EJB3...
Seam事件是一个基于事件驱动的编程模型,能够帮助开发者快速构建企业级应用程序。Seam事件提供了一个统一的编程模型,能够将JSF、EJB、JPA等技术整合在一起,提供了一个强大且灵活的开发环境。 Seam拦截器 Seam...
本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将根据书名、描述以及部分内容对该书籍涉及的主要知识点进行详细解析。 ### 一、Seam框架简介 #### 1.1 什么是Seam Seam 是一个开源的 Java ...
3. **事件驱动**:Seam 支持事件驱动的编程模式,允许组件之间通过事件进行通信,增加了代码的灵活性和可扩展性。 4. **集成JSF**:Seam 与JSF深度集成,提供了增强的JSF组件库和更强大的页面导航,简化了前端界面...
这种特性在处理复杂业务逻辑和数据绑定时非常有用,使开发者能够更容易地构建松耦合、可复用的组件。 **总结** JBoss Seam通过其深度集成特性,成功地将多种Java EE技术融合在一起,降低了开发难度,提高了开发...
- **上下文相关的组件模型**:这是Seam最核心的设计理念之一,使得组件能够在不同的上下文中表现出不同的行为,增强了组件的灵活性。 - **组件生命周期管理**:Seam提供了丰富的组件生命周期管理机制,能够帮助...