Seam实战(详尽细致,涉及Seam框架的方方面面)
基本信息
- 原书名: Seam in Action
- 原出版社: Manning Publications
- 作者: (美)Dan Allen [作译者介绍]
- 译者: 俞黎敏 杨春花 崔毅
- 丛书名: 图灵程序设计丛书 Java系列
- 出版社:人民邮电出版社
- ISBN:9787115224644
- 上架时间:2010-7-1
- 出版日期:2010 年6月
- 开本:16开
- 页码:481
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > JAVA(J#) > J2EE
编辑推荐
理论与实践的完美结合
详尽细致,涉及Seam框架的方方面面
亚马逊网店好评如潮
内容简介回到顶部↑
本书深入讲解了jboss seam,介绍了seam如何消除了不必要的层和配置,解决了jsf最常见的难点,建立了jsf、ejb 3 和javabean组件间缺少的链接。书中也介绍了如何利用seam 进行技术综合,如业务过程、有状态的页面流、ajax远程处理、pdf生成、异步任务等。
本书适用于java 程序员阅读。
本书适用于java 程序员阅读。
目录回到顶部↑
第一部分 了解seam
第1章 seam使java ee一体化 2
1.1 我该选用哪种框架 3
1.2 选择seam 3
1.2.1 完整的应用程序栈 4
1.2.2 开发seam的原因 4
1.2.3 “厂商垄断”传闻真相 5
1.2.4 seam用例 6
1.3 seam的统一方法 7
1.3.1 seam整合了jsf、jpa和pojo
组件 7
1.3.2 上下文组件模型 9
1.4 牛刀小试 12
1.4.1 充当backing bean的实体类 12
1.4.2 全能的组件 13
1.4.3 将组件绑定到视图上 14
1.4.4 按需获取数据 16
1.4.5 可点击列表 16
1.4.6 为jsf设计的集成测试 17
1.5 seam的核心竞争力 18
第1章 seam使java ee一体化 2
1.1 我该选用哪种框架 3
1.2 选择seam 3
1.2.1 完整的应用程序栈 4
1.2.2 开发seam的原因 4
1.2.3 “厂商垄断”传闻真相 5
1.2.4 seam用例 6
1.3 seam的统一方法 7
1.3.1 seam整合了jsf、jpa和pojo
组件 7
1.3.2 上下文组件模型 9
1.4 牛刀小试 12
1.4.1 充当backing bean的实体类 12
1.4.2 全能的组件 13
1.4.3 将组件绑定到视图上 14
1.4.4 按需获取数据 16
1.4.5 可点击列表 16
1.4.6 为jsf设计的集成测试 17
1.5 seam的核心竞争力 18
前言回到顶部↑
“要想解决问题,就先要改变思维”。
——爱因斯坦
我在写这篇前言的时候,正飞越大西洋,这是我同一个月里第二次从欧洲回到美国。这次是到托斯卡纳参加会议,讨论Seam的未来;前一次是到苏黎世,当时我在Jazoon’08年度研讨会上做了关于Seam的演讲。那次旅行的意义对我来说尤其重大,因为那是我有生以来第一次到北美之外的地方旅行。我原以为这一天永远也不会到来,但是我竟然如愿以偿了,感谢Seam。(还要感谢我的哥哥Kevin,是他帮我买了机票。)
这听起来让人觉得有些不可思议,我人生中的这一重要里程碑居然要归功于Seam。毕竟,一种框架怎么可能激发一个人去做一次空前的旅行呢?你肯定认为我疯了,但请先听我解释我是如何与Seam结缘,以及它是如何影响着我,让我大开眼界的。
Seam还处在开发阶段的时候,我正被一个利用Spring和JSF构建的项目搞得焦头烂额。有一年多的时间,我一直在一成不变地努力管理应用程序的状态,和一些无关紧要的决策较劲,例如,要把业务对象命名为Manager还是Service,合理使用几个层,以及哪个层应该负责某项指定的任务。所有这些使人分心的事情阻碍了项目的进展,也阻碍了我的成长。我决心要找到一条出路。
Seam吸引我的亮点在于,它提供了通过页面描述符控制JSF请求的细粒度控制。我之所以迷上Seam(并且最终决定撰写此书),远远不只是因为它为我解决了当时的燃眉之急。
Seam有影响力,是因为它遵循一致的方法,而不强加任意的限制。它利用注解、拦截器、基于XHTML的模板以及JSF组件,尽量提高你的编码效率。当你需要对象时,或者在你需要对象的地方,Seam都提供了访问对象的权限,并替你管理对象。它还帮助你建立从一个页面请求到下一个页面请求的连续性。Seam给了你极大的自由,你可以根据自己的需要组织应用程序,选择构建应用程序的工具,比如用Java还是用Groovy,用XML还是用注解,用JavaScript还是用多功能的小部件,用内建组件还是用定制组件,等等。
但是我们往往会受到“框架”(framework)的束缚,忘记了编写软件的初衷是满足用户或者客户端用户的需要。这是开始学习这些工具时应该持有的观点。
用户并不想没日没夜地把结果集一页页地从头翻到尾,也不太关心视图中是否出现了延迟初始化异常的问题。他们只想要成熟的软件。他们要高级搜索,要用PDF或者Excel生成的报表,要图表、电子邮件、文件上传、动态图片、向导、工作空间,等等。用户要的一般都是真正难以开发的东西,至少比单纯只通过CRUD生成工具来操作数据库更难。Seam也提供了CRUD生成工具,让你可以立即投入开发,但它的功能远不止这些。
Seam值得你去学习,是因为它几乎触及了Java EE的每一个方面。要学习的东西固然很多,但是有了Seam,Java平台的每个层面都变得非常容易使用,并让你能够在项目开发早期就处理应用程序的高级部分。你不必再担心用户提出天马行空般的疯狂需求了,反而觉得自己有能力编写应用程序,甚至会列出期待的特性清单。
作为一个集成框架,Seam网罗了众多随手可用的技术。因此,你会发现自己正在尝试一些前所未有的技术,并相信自己的应用程序和自身能力都会很快成熟起来。你还会开始在应用程序中引入新的交互风格,如事件观察者(event-observer)模式,或者像Ajax Push这类具有革命性的东西。你会习惯于探索新的领域,同时又不必放弃熟悉的东西。Seam影响了你对生活的整体态度。
回到我一开始提到的话题。Seam是激发我最终飞越北美的动力。它还促使我开始了我的写作和顾问生涯,让我置身于这个成功的开源项目中,让我有幸能与众多才华横溢的人们相识。Seam将如何改变你的职业生涯?它又将如何改变你的人生呢?
2008年7月写于大西洋上空的某个地方
——爱因斯坦
我在写这篇前言的时候,正飞越大西洋,这是我同一个月里第二次从欧洲回到美国。这次是到托斯卡纳参加会议,讨论Seam的未来;前一次是到苏黎世,当时我在Jazoon’08年度研讨会上做了关于Seam的演讲。那次旅行的意义对我来说尤其重大,因为那是我有生以来第一次到北美之外的地方旅行。我原以为这一天永远也不会到来,但是我竟然如愿以偿了,感谢Seam。(还要感谢我的哥哥Kevin,是他帮我买了机票。)
这听起来让人觉得有些不可思议,我人生中的这一重要里程碑居然要归功于Seam。毕竟,一种框架怎么可能激发一个人去做一次空前的旅行呢?你肯定认为我疯了,但请先听我解释我是如何与Seam结缘,以及它是如何影响着我,让我大开眼界的。
Seam还处在开发阶段的时候,我正被一个利用Spring和JSF构建的项目搞得焦头烂额。有一年多的时间,我一直在一成不变地努力管理应用程序的状态,和一些无关紧要的决策较劲,例如,要把业务对象命名为Manager还是Service,合理使用几个层,以及哪个层应该负责某项指定的任务。所有这些使人分心的事情阻碍了项目的进展,也阻碍了我的成长。我决心要找到一条出路。
Seam吸引我的亮点在于,它提供了通过页面描述符控制JSF请求的细粒度控制。我之所以迷上Seam(并且最终决定撰写此书),远远不只是因为它为我解决了当时的燃眉之急。
Seam有影响力,是因为它遵循一致的方法,而不强加任意的限制。它利用注解、拦截器、基于XHTML的模板以及JSF组件,尽量提高你的编码效率。当你需要对象时,或者在你需要对象的地方,Seam都提供了访问对象的权限,并替你管理对象。它还帮助你建立从一个页面请求到下一个页面请求的连续性。Seam给了你极大的自由,你可以根据自己的需要组织应用程序,选择构建应用程序的工具,比如用Java还是用Groovy,用XML还是用注解,用JavaScript还是用多功能的小部件,用内建组件还是用定制组件,等等。
但是我们往往会受到“框架”(framework)的束缚,忘记了编写软件的初衷是满足用户或者客户端用户的需要。这是开始学习这些工具时应该持有的观点。
用户并不想没日没夜地把结果集一页页地从头翻到尾,也不太关心视图中是否出现了延迟初始化异常的问题。他们只想要成熟的软件。他们要高级搜索,要用PDF或者Excel生成的报表,要图表、电子邮件、文件上传、动态图片、向导、工作空间,等等。用户要的一般都是真正难以开发的东西,至少比单纯只通过CRUD生成工具来操作数据库更难。Seam也提供了CRUD生成工具,让你可以立即投入开发,但它的功能远不止这些。
Seam值得你去学习,是因为它几乎触及了Java EE的每一个方面。要学习的东西固然很多,但是有了Seam,Java平台的每个层面都变得非常容易使用,并让你能够在项目开发早期就处理应用程序的高级部分。你不必再担心用户提出天马行空般的疯狂需求了,反而觉得自己有能力编写应用程序,甚至会列出期待的特性清单。
作为一个集成框架,Seam网罗了众多随手可用的技术。因此,你会发现自己正在尝试一些前所未有的技术,并相信自己的应用程序和自身能力都会很快成熟起来。你还会开始在应用程序中引入新的交互风格,如事件观察者(event-observer)模式,或者像Ajax Push这类具有革命性的东西。你会习惯于探索新的领域,同时又不必放弃熟悉的东西。Seam影响了你对生活的整体态度。
回到我一开始提到的话题。Seam是激发我最终飞越北美的动力。它还促使我开始了我的写作和顾问生涯,让我置身于这个成功的开源项目中,让我有幸能与众多才华横溢的人们相识。Seam将如何改变你的职业生涯?它又将如何改变你的人生呢?
2008年7月写于大西洋上空的某个地方
序言回到顶部↑
作为Seam项目的开发人员,我们面临的最大挑战不是编写代码,而是怎样向新用户解释并让他们了解Seam。对于初学者来说,要想真正弄明白Seam是什么,必须跨越一道很大的鸿沟。这不是因为Seam过于复杂,或者说学习Seam需要深奥的技术背景,而是因为Seam把主流Java程序员所不熟悉的许多理念综合到了一起。这其中有许多理念将对企业级Java开发常识产生冲击。
首先,Seam填补了一道许多Java程序员并没有意识到的空白。我们习惯了把几种技术组合到一个框架中,对于一套完整的应用程序集成框架却感到陌生。这种解体式的组合在持久层最令人苦不堪言。高速缓存无效和延迟加载困扰着大多数的应用程序,而Seam真正解决了这些问题。不要质疑这一点,要知道Seam的创造者们曾经是Hibernate幕后的智囊团!
现在Seam提供了动态双向注入(bijection),它与流行的依赖注入框架所提供的静态注入截然不同。我们要告诉你:当主流的技术迫使所有应用程序都进入多层次的无状态架构中,而不管该架构是否适合正在开发的应用程序时,其实还有更适合的有状态组件可用。
我们刚接触到最表面的内容,就已经可以看出Seam所带来的景象与现状之间的差距有多大,因而指导Seam的新用户就变成了一个巨大的挑战。市面上关于Seam的入门书几乎都只介绍基础知识,它们介绍了这门技术的ABC,却没有介绍如何用这些字母组词和造句。本书是第一本把握住了Seam精髓的Seam图书,它介绍了如何把这些词语和句子组合起来,这也是Seam团队期望Seam被使用的方式。
本书的独特之处在于作者Dan Allen没有局限于Seam的固有结构,而是对其进行了一番剖析,提取了它的核心概念,并以新颖独特的方式将它们重新组合在一起。本书并不是其他Seam图书内容的简单重复,而是很好的补充。它介绍了如何理解Seam,以及如何有效地将Seam应用到你自己的应用程序中去。
Seam可以帮助你编写出更好的代码、功能更加丰富的应用程序,也可以帮助你提高工作效率,用更简单、更易于管理的架构来编写应用程序。但前提是,你必须真正花时间去学习如何最好地应用这门技术。本书是最好的指导书,可以帮助你将Seam的优越功能发挥到极致。
如果你愿意接受这个挑战,希望能够对书中介绍的技术做到举一反三,就请开始行动吧。
Norman Richards
Red Hat高级工程师
首先,Seam填补了一道许多Java程序员并没有意识到的空白。我们习惯了把几种技术组合到一个框架中,对于一套完整的应用程序集成框架却感到陌生。这种解体式的组合在持久层最令人苦不堪言。高速缓存无效和延迟加载困扰着大多数的应用程序,而Seam真正解决了这些问题。不要质疑这一点,要知道Seam的创造者们曾经是Hibernate幕后的智囊团!
现在Seam提供了动态双向注入(bijection),它与流行的依赖注入框架所提供的静态注入截然不同。我们要告诉你:当主流的技术迫使所有应用程序都进入多层次的无状态架构中,而不管该架构是否适合正在开发的应用程序时,其实还有更适合的有状态组件可用。
我们刚接触到最表面的内容,就已经可以看出Seam所带来的景象与现状之间的差距有多大,因而指导Seam的新用户就变成了一个巨大的挑战。市面上关于Seam的入门书几乎都只介绍基础知识,它们介绍了这门技术的ABC,却没有介绍如何用这些字母组词和造句。本书是第一本把握住了Seam精髓的Seam图书,它介绍了如何把这些词语和句子组合起来,这也是Seam团队期望Seam被使用的方式。
本书的独特之处在于作者Dan Allen没有局限于Seam的固有结构,而是对其进行了一番剖析,提取了它的核心概念,并以新颖独特的方式将它们重新组合在一起。本书并不是其他Seam图书内容的简单重复,而是很好的补充。它介绍了如何理解Seam,以及如何有效地将Seam应用到你自己的应用程序中去。
Seam可以帮助你编写出更好的代码、功能更加丰富的应用程序,也可以帮助你提高工作效率,用更简单、更易于管理的架构来编写应用程序。但前提是,你必须真正花时间去学习如何最好地应用这门技术。本书是最好的指导书,可以帮助你将Seam的优越功能发挥到极致。
如果你愿意接受这个挑战,希望能够对书中介绍的技术做到举一反三,就请开始行动吧。
Norman Richards
Red Hat高级工程师
媒体评论回到顶部↑
“本书抓住了Seam的精髓……可以帮助你将Seam的优越功能发挥到极致。”
——Norman Richards,Red Hat高级工程师
“经典之作,强烈推荐。”
——Ted Goddard,ICEfaces.org首席架构师
“详尽解释,耐心教诲,逐步引导读者树立掌握Seam的必胜信心。”
——Peter Pavlovich,Kronos公司高级工程师
“即便你已经是这方面的技术专家了,本书也不会让你失望的。”
——Amazon.com
——Norman Richards,Red Hat高级工程师
“经典之作,强烈推荐。”
——Ted Goddard,ICEfaces.org首席架构师
“详尽解释,耐心教诲,逐步引导读者树立掌握Seam的必胜信心。”
——Peter Pavlovich,Kronos公司高级工程师
“即便你已经是这方面的技术专家了,本书也不会让你失望的。”
——Amazon.com
【插图】

点击看大图




加载中...
