具体描述
《J2EE核心模式》(原书第2版):“Java领域的版图上撒满了各种类库、工具和技术规范。而缺乏的则是把这些内容融合在一起、解决真实情况下的问题的专业能力。本书中的这些模式,成为了J2EE软件建设过程中的智能水泥。
——John Vlissides,《设计模式》的作者之一
“《J2EE核心模式》的作者们提取了一组真正实用的模式。他们介绍了应该如何应用这些模式、如何重构你的系统以便从模式中获益。这就像有一个专家组坐在你旁边一样。
——Grady Booch,Rational软件公司首席科学家
“作者们介绍了大量对于应用架构极有帮助的模式,这是一项了不起的工作。单单是书中的‘重构’部分就值整本书的价钱!”
——Craig McClanahan,Struts首席架构师,JavaServer Faces技术规范组负责人
开发者们常常把“学会一种技术”和“学会使用这种技术进行设计”混为一谈。在本书中,Sun Java中心的资深架构师们分享了他们多年积累的使用J2EE技术进行设计的经验。
本书关注的主要内容,是使用J2EE的核心技术蜒包括JSPTM、Servlet、EJBTM、JMSTMAPI等蜒实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案。其中的J2EE模式目录包括21个模式以及大量策略,有助于记录、促成运用以上技术的最佳实践。
作者简介
目录信息
第1章 导论
什么是J2EE
什么是模式
历史回顾
模式的定义
模式的分类
J2EE模式目录
演化过程
怎样使用J2EE模式目录
使用模式的益处
模式、框架和重用
小结
第2章 表现层设计考虑和不佳实践
表现层设计考虑
会话管理
控制客户端访问
验证
助手类属性—完整性和一致性
表现层不佳实践
多个视图中都包括控制代码
把表现层的数据结构暴露给业务层
把表现层数据结构暴露给业务领域对象
允许重复提交表单
把敏感资源暴露给客户端的直接访问
假定 <jsp:setProperty> 会重置Bean属性
创建出“胖控制器”
把视图助手当成scriplet使用
第3章 业务层设计考虑和不佳实践
业务层设计考虑
使用session bean
使用entity bean
缓存EJB的远程引用和句柄
业务层和集成层不佳实践
把对象模型直接映射为entity bean模型
把关系型模型直接映射为entity bean模型
把每个用例映射为一个session bean
通过Getter/Setter方法暴露EJB的所有属性
在客户端中包括服务寻址代码
把entity bean当成只读对象使用
把entity bean当成细粒度对象使用
存储entity-bean的整个从属对象拓扑结构
把EJB相关的异常暴露给非EJB客户端
使用entity bean finder方法返回大型结果集
客户端负责聚合来自业务组件的数据
把EJB用于长时间持续的事务
每次调用无状态session bean都要重建
对话状态
第4章 J2EE重构
表现层的重构
引入控制器
引入同步器令牌
隔离不同逻辑
对业务层隐藏表现细节
去除视图中的转换
对客户端隐藏资源
业务层和集成层的重构
用session bean包装entity bean
引入业务代表
合并session bean
减少entity bean之间的通信
将业务逻辑移至session bean
一般的重构
分离数据访问代码
按层重构系统架构
使用连接池
第二部分 J2EE模式目录
第5章 J2EE模式概览
什么是模式
发现模式
模式 vs. 策略
分层思路
J2EE模式
表现层模式
业务层模式
集成层模式
J2EE模式目录指南
术语
UML的使用
模式模板
J2EE模式关系
与现有其他模式的关系
模式路线图
小结
第6章 表现层模式
拦截过滤器
问题
约束
解决方案
效果
相关模式
前端控制器
问题
约束
解决方案
效果
相关模式
Context对象
问题
约束
解决方案
效果
相关模式
应用控制器
问题
约束
解决方案
效果
相关模式
视图助手
问题
约束
解决方案
效果
相关模式
复合视图
问题
约束
解决方案
效果
示例代码
相关模式
服务到工作者
问题
约束
解决方案
效果
示例代码
相关模式
分配器视图
问题
约束
解决方案
效果
示例代码
相关模式
第7章 业务层模式
业务代表
问题
约束
解决方案
效果
示例代码
相关模式
服务定位器
问题
约束
解决方案
效果
示例代码
相关模式
会话门面
问题
约束
解决方案
效果
示例代码
相关模式
应用服务
问题
约束
解决方案
效果
示例代码
相关模式
业务对象
问题
约束
解决方案
效果
示例代码
相关模式
复合实体
问题
约束
解决方案
效果
示例代码
相关模式
传输对象
问题
约束
解决方案
效果
示例代码
相关模式
传输对象组装器
问题
约束
解决方案
效果
示例代码
相关模式
值列表处理器
问题
约束
解决方案
效果
示例代码
相关模式
第8章 集成层模式
数据访问对象
问题
约束
解决方案
效果
相关模式
服务激活器
问题
约束
解决方案
效果
相关模式
业务领域存储
问题
约束
解决方案
效果
相关模式
Web Service中转
问题
约束
解决方案
效果
相关模式
尾声
Web Worker微架构纵览
工作流简介
Web Worker微架构
问题
约束
解决方案
效果
参考书目
Apache软件授权协议,1.1版
索引
· · · · · · (收起)
读后感
如果要使用JEE(With EJB)那这部书可以说是一个很好的范本,他介绍了JEE所具有的每个层以及这些层的职责,这些算是jee官方所建议(蓝皮书)这么做的 对于初涉JEE的朋友来说,这本书应该可以让你明白很多JEE的内容,很快的入手JEE
如果要使用JEE(With EJB)那这部书可以说是一个很好的范本,他介绍了JEE所具有的每个层以及这些层的职责,这些算是jee官方所建议(蓝皮书)这么做的 对于初涉JEE的朋友来说,这本书应该可以让你明白很多JEE的内容,很快的入手JEE
内容有点像教科书,没有概念性的介绍,但是讲得很细节,可以当作入门后的学习书籍,估计完整看完的可能性极小。
如果要使用JEE(With EJB)那这部书可以说是一个很好的范本,他介绍了JEE所具有的每个层以及这些层的职责,这些算是jee官方所建议(蓝皮书)这么做的 对于初涉JEE的朋友来说,这本书应该可以让你明白很多JEE的内容,很快的入手JEE
如果要使用JEE(With EJB)那这部书可以说是一个很好的范本,他介绍了JEE所具有的每个层以及这些层的职责,这些算是jee官方所建议(蓝皮书)这么做的 对于初涉JEE的朋友来说,这本书应该可以让你明白很多JEE的内容,很快的入手JEE
用户评价
这本书的装帧设计着实让人眼前一亮,封面的排版简洁大气,那种沉稳的蓝色调很容易让人联想到技术的深度和可靠性。一上手,纸张的质感也相当不错,拿在手里沉甸甸的,感觉是那种可以伴随我度过无数个学习之夜的“老伙计”。我尤其欣赏作者在引言部分的处理,没有急于抛出那些晦涩的技术术语,而是先用一种非常生活化的语言,勾勒出了当前软件架构面临的困境,仿佛在和我这位读者进行一次深入的、平等的对话。这种叙事方式极大地降低了我对技术书籍的畏惧感。我期待接下来的内容能够延续这种平易近人的基调,尤其是在解析那些复杂的企业级设计时,希望能有更直观的图示和案例来辅助理解。翻阅目录时,我对其中关于“高可用性策略”的那一章颇感兴趣,希望它能深入讲解如何在不引入过多冗余复杂性的前提下,实现系统的健壮性,而不是仅仅停留在概念的罗列上。总而言之,这本书的“第一印象分”非常高,它给我的感觉是,这不是一本冰冷的教材,而更像是一位经验丰富的架构师在耳边细细道来的心得体会。
读完前三章的感受,我不得不说,作者在抽象概念的具象化处理上确实下了苦功。特别是关于“领域驱动设计”那块,市面上很多书籍往往会陷入术语的迷雾,但这里,作者似乎找到了一种“翻译器”,把那些原本听起来高高在上的理论,拆解成了可以被一线开发人员实际操作的步骤。我特别喜欢他引入的“XX公司重构案例”,虽然只是一个虚构的场景,但通过这个场景的演进,我清晰地看到了模式是如何一步步从理论走向实践,最终解决实际业务痛点。不过,有一点稍显不足,那就是在某些关键代码示例的篇幅上略显不足。比如,当讨论到某个特定模式的最佳实践时,我更希望看到的是一整套完整的、可编译的、能够体现上下文环境的代码块,而不是仅仅截取了核心逻辑。这或许是篇幅限制所致,但对于追求实战效果的我来说,多一些“手把手”的指导会更令人信服。总体而言,这本书的逻辑脉络清晰得如同精密仪器,阅读体验是流畅且富有启发性的。
作为一名偏向于前端和应用层集成的工程师,我最初对这种偏向底层和中间件的架构模式书是抱有抵触心理的,总觉得会过于偏重服务器端的“内功心法”,与我日常工作关联不大。然而,这本书的结构安排巧妙地打破了我的这种刻板印象。它没有一上来就深陷于J2EE容器的细节,而是先用大量的篇幅阐述了“面向对象设计原则(SOLID)”与“组件化思想”是如何支撑起后续所有企业级模式的基石。这相当于先给我打好了坚实的地基,让我明白,无论是多么复杂的服务器端架构,其核心思想依然是那些最朴素的软件工程美德。这种自顶向下的教学思路,使得我对整个技术栈的理解变得更加融会贯通,不再是零散的知识点堆砌。这本书的价值在于,它不仅仅是一本技术手册,更像是一份指导工程师如何进行系统性思考的“思维导图”。
这本书的阅读难度曲线控制得非常平滑,前半部分的铺垫扎实稳固,让人有信心继续往下啃那些硬骨头。我发现,作者在讲解完一个核心模式后,通常会附带一个“常见陷阱与规避”的小节。这部分内容简直是精华中的精华,它集合了无数次项目失败的教训,用极其精炼的语言警示读者不要重蹈覆辙。例如,在阐述“代理模式”时,对“透明代理”和“动态代理”在性能开销上的细微差别进行了量化分析,这远比教科书上的简单定义要实用得多。如果非要挑剔的话,我认为本书在排版上可以更人性化一些,有些图表占据了半页篇幅,但其信息密度相对较低,如果能将图表与紧邻的文字描述进行更紧密的关联排版,或许能进一步提升阅读的连贯性和效率。但瑕不掩瑜,这本书无疑是近几年我读过的,在深度、广度以及实践指导性上都达到顶尖水准的架构类著作。
这本书的视角非常宏大,它似乎并不满足于仅仅教授“如何实现”某种模式,而是更侧重于“为什么选择”这个模式,以及在什么“边界条件”下,这个模式会失效或成为反模式。这一点,对于我们这些已经有一定经验,但在架构选型上常常摇摆不定的中级开发者来说,简直是醍醐灌顶。书中对不同模式之间的权衡(Trade-off)分析写得极其深刻,毫不含糊地指出了每种方案的“代价”。例如,对比解释了“两阶段提交”与“Saga模式”在分布式事务处理上的哲学差异,让我对系统一致性的理解上升到了一个新的高度。我感觉作者对分布式系统的理解已经超越了技术的层面,触及到了工程哲学。唯一的遗憾是,对于一些新兴的技术栈,比如基于云原生的服务网格(Service Mesh)中的流量管理模式,这本书的探讨似乎稍显保守或引用案例比较陈旧,期待后续修订版能增加这方面的内容,让其更贴合当下最新的云架构趋势。
很好的设计原则,不过太过庞大,实际应用中需要恰当使用。适合进阶阅读
曾是最佳书籍,不过old了。
我有这本书
J2EE爱好者必读。
核心模式