4. 更易于理解的seam编程模型
现在我们已经大致了解了Hello World的应用。但是我们还有一些重要的话题继续,例如其他折中途径以及前面代码没有涉及到重要特性,我们将在本节讨论这些话题。它们能帮助开发者对seam更深刻的理解,但是如果你没有耐心,可以直接跳过本节,需要的时再来阅读。
4.1 Seam POJO组件
上例中,我们用一个EJB3会话bean实现了应用逻辑,但是我们并不局限于EJB3组件。事实上,Seam中任何一个有@Name注解的POJO都能被转化为一个可管理的组件。
例如,我们能将ManagerAction转化为一个 POJO,而不是一个EJB3 session bean。
@Name("manager")
public class ManagerAction {
@In (create=true)
private EntityManager em;
... ...
}
使用POJO取代EJB3 bean有正反两方面意见,使用POJO编程时很简单,因为它们不需要EJB3特有的注解和接口(参见上文)。如果你的所有业务组件都是Seam POJO, 那么你就能不依赖EJB3应用服务器,运行你的Seam 应用(参见23章,没有EJB3的Seam)。
但是,POJO比EJB3的功能少,因为POJO不能获得EJB3容器服务。在不依赖EJB3的Seam 中丧失的EJB3服务就包括以下几点:
- @PersistenceContext注入在POJO中不在管用。为了在一个Seam POJO中得到EntityManager,开发者不得不在Seam配种文件中初始化EntityManager,然后使用Seam注解@In将它注入到POJO中。
- POJOs中将不在支持方法级别事务声明(declarative method-level transaction)。相反,你可以配置Seam来划分事务,可以从收到web请求开始直到响应页面产生结束。
- Seam POJO不是消息驱动组件。
- 不支持注解为@Asynchronous的方法。
- 不支持容器安全管理。
- 没有事务或者组件级别的持久上下文。Seam POJO中的所有的持久上下文都是经过拓展的(更多细节请参见7.1 “默认的对话作用域”)。
- 没有集成容器管理的体系结构(例如,JMX控制台服务)。
- Seam POJO方法中没有Java RMI。
- Seam POJO不能是注解为@WebService组件。
- 没有JCA集成。
所以当在EJB3容器中进行部署时,为什么每个人都想使用POJO组件?答案就是,POJO组件对于纯“业务逻辑”组件非常有益。POJO为其他组件代理了数据访问、消息传递和其他基本功能。例如,我们能使用POJO组件操纵Seam数据访问对象,这对“业务逻辑”POJO是非常有用的,因为它们可以在需要的时候,在其他框架中被重用。但是总的来说,它们的应用要比EJB3组件少,特别是在中小型应用中。所以,本书的大多数例子我们都使用EJB3组件。
4.2 易于测试
我们已经在第一章中提到,Seam为了不依赖容器的方便的测试,进行了重新设计。在helloworld项目中,我们在测试文件夹中包括了单元测试和集成测试这两个测试用例。在纯Java SE环境下,Seam 测试体系模拟了数据库、JSF、Seam上下文以及其他应用服务器服务,只要运行ant test命令就能运行所有的测试。
4.3 基于Getter和Setter的双向映射
在Hello World一例中,我们已经展示了通过成员变量对Seam组件进行的双向映射,你也能通过Getter和Setter方法对组件进行双向映射。例如,以下代码就工作的很好。
private Person person;
private List <Person> fans;
@In
public void setPerson (Person person) {
this.person = person;
}
@Out
public Person getPerson () {
return person;
}
@Out
public List <Person> getFans () {
return fans;
}
虽然以上的getter和setter方法看似轻微,利用getter和setter方法的双向映射真正的价值在于能其加入定制逻辑来操纵双向映射的过程。例如,你可以验证被注入的对象或者快速地从数据库重新得到被抛出的对象。
分享到:
相关推荐
标题中的“Jboss seam3 实战”表明,本文将重点介绍JBoss Seam框架的第三个版本的实际应用。JBoss Seam是一个开源的Java EE框架,它通过依赖注入和会话模型,简化了基于Java EE的企业级应用开发。Seam框架为开发者...
通过本书的学习,你将能够更好地利用JBoss Seam框架,构建出既简单又强大的企业级应用。 总之,本书是JBoss Seam框架领域的一部经典之作,不仅提供了深入的技术解析,还包含了丰富的实战案例和最佳实践。对于希望...
3. **JBoss Seam** - **下载地址**:[www.seamframework.org/Download](http://www.seamframework.org/Download) - **推荐版本**:2.1.1 GA - **下载文件**:jboss-seam-2.1.1.GA.zip 4. **JBoss Tools** - *...
标题:JBoss Seam入门介绍 描述:本文将详细介绍JBoss Seam框架的核心概念、关键特性以及如何构建基于Seam的应用程序。Seam作为一个企业级Java Web应用框架,它将Java EE和JSF无缝集成,旨在填补Java EE 5.0中缺失...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
**JBoss Seam 中文文档集合概述** JBoss Seam 是一个开源的应用框架,它结合了JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB) 3.0 和其他Java EE组件,旨在简化企业级开发。这个...
### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...
3. **EJB和JPA集成**:掌握Seam如何与EJB和JPA协作,实现业务逻辑和数据持久化。 4. **安全和事务管理**:学习Seam的安全框架和事务管理机制,确保应用的安全性和数据一致性。 5. **富客户端集成**:了解如何将Seam...
### 深入浅出JBoss Seam:整合与强化Java EE框架 #### 一、引言 JBoss Seam是一款基于Java EE 5.0的轻量级框架,它旨在简化企业级Web应用的开发过程,并增强应用的可扩展性和开发者的生产力。本文将详细介绍JBoss ...
[TipTec Development] JSF & Facelets & JBoss Seam 核心技术 (英文版) [TipTec Development] Essential JSF, Facelets & JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] TipTec ...
通过以上知识点的介绍,我们可以看出,《Beginning JSF2 APIs and JBoss Seam》不仅涵盖了JSF2和JBoss Seam的基本理论和技术要点,还提供了丰富的实战经验和案例分析,对于希望深入学习这两种技术的开发者来说,是一...
**JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...
- **本教程**:主要介绍了JBoss Seam的基本概念、核心组件以及通过一系列示例项目来学习Seam的实际应用。 #### 二、Seam基础知识与实例分析 ##### 2.1 第一个Seam应用:注册示例 - **实体类**:`User.java`定义了...
《深入浅出JBoss Seam》 JBoss Seam是一个旨在简化企业级Web应用开发的轻量级框架,它补充和完善了Java EE 5.0的标准。...无论是对于新手还是经验丰富的开发者,Seam都是一个值得深入学习和使用的工具。
### JBoss Seam 2.01GA REF DOC #### 引言:JBoss Seam概览与功能介绍 JBoss Seam 是一个为简化企业级 Java 应用开发而设计的框架。它结合了 JavaServer Faces (JSF)、Java Persistence API (JPA) 和 Java ...
通过本书的学习,读者可以深入了解如何利用JBoss Seam框架来构建高效且可扩展的应用程序。 #### 二、JBoss Seam框架简介 JBoss Seam框架是JBoss AS的一部分,它提供了丰富的功能集,帮助开发者快速构建复杂的Web...
java jboss seam jboss-seam-selectitems
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...