`

J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(一)

阅读更多

第1章:导论。

模式能够:

利用一个经过验证可行的解决方案;

提供一套通用词汇;

约束解决方案的空间。

 

第2章:表现层设计考虑和不佳实践。

客户端验证:基于表单的验证、基于抽象类型的验证。

曾经在JSP中滥用过的助手类,通过助手类在页面和业务逻辑之间传递数据,有点类似于如今Struts中的Action作为传值模型时的情况。

表现层不佳实践:

多个视图中都包含控制代码;

表现层数据结构暴露给业务层或者业务领域对象,比如:暴露HTTPServletRequest;

重复提交表单;

敏感资源暴露给客户端直接访问,有个原则,敏感的东西不能放在WEB-INF之外;

胖控制器;

……

怎么区分后台视图层和前台页面层?或者说,怎么划分哪些事情JSP或者模板做,哪些事情JavaScript做?首先,根据模型驱动的原则,通常送到JSP或者模板上的都是通用模型的对象或者对象集,JSP或者模板根据需要选择展示出来,但是后续可抽取为不需和服务端交互状态下响应用户的行为,应当划分为JavaScript的工作。

 

第3章:业务层设计考虑和不佳实践:

session bean:根据EJB规范,每个session bean专门服务于一个客户端或者用户,生命时间等于客户端会话时间;在服务器崩溃后无法存活、无法持久化、会超时、可以涉及事务;支持构造有状态或无状态的对话模型。

不过现在的容器会话大多可以持久化了,会话复制和会话持久化应当是会话管理中重要的两个分支,通常情况下会话不需考虑完整的事务性,保证线程独立性即可。

至于无状态的session bean,可以被池化,以高效利用(EJB容器管理)。

entity bean:实体bean是否应该包含业务逻辑?按照下面三个原则去判定,还是比较清晰的:

这样的业务逻辑是否会引入实体之间的关系?比如处理UserInfo的时候,是否引入了AccountInfo,这样应当考虑根据模型驱动的原则,放置到专门的User或者Account相关的业务无状态bean中去;

是否要负责管理用户交互的工作流?

是否会担负起本该属于其他业务组件的责任?

有一个“是”,就说明不该包含这段业务逻辑。

尤其提一句,如果使用远程实体bean,就更应该减少实体bean之间的依赖关系,以提高性能和可用性。

业务层和集成层不佳实践:

对象模型或关系模型或每个用例直接映射成实体bean:导致粒度过细,EJB就给网络传输带来太多的负担;

通过getter、setter暴露EJB所有属性:这也是不好的,提供少量和可控的方法调用,减少远程方法调用的开销;

客户端中包括服务寻址代码:寻址这件事情应当从单纯的客户端抽离出来,把不同的寻址策略和复杂度封装起来,真正做到透明传输(扩展到without EJB的系统中也一样,集群环境中也一样,把寻址的行为隐藏于业务逻辑之下)。

EJB用户长时间持续的事务:会锁住其他EJB需要的资源;

……

 

第4章:J2EE重构:

对业务层隐藏表现细节:对用户请求的处理和通信协议相关的数据不应当被业务层获取,最简单的例子就是HttpServletRequest对象。

用session bean包装entity bean:现在这里说的问题一般不会出现,一般也不会有人直接把Action对象扔给后面的业务逻辑去处理,原文说的解决办法是引入业务代表,涉及到此的还有两条:减少entity bean之间的通信;将业务逻辑移至session bean。

分离数据访问代码:DAO。

按层重构系统架构(这里也正好归纳一下现在J2EE系统中常涉及到的Action、Service和EJB中的几种bean的内在联系),例如:

客户端层:浏览器

表现层:JSP、模板、业务代表

业务层:entity bean(Action)、session bean(各种粒度的Service)

集成层:DAO

资源层:DB

……

 

文章系本人原创,转载请注明作者和出处

分享到:
评论

相关推荐

    J2EE核心模式(Core J2EE Patterns)

    《J2EE核心模式(Core J2EE Patterns)》是一本深度探讨J2EE平台设计模式的权威著作,由SUN公司的资深工程师倾力撰写。这本书是Java企业级开发者的必备参考书籍,它揭示了在复杂的企业级应用开发中,如何有效地利用...

    J2EE核心模式 Core J2EE Patterns 中文版 part1 of 2

     本书讲解使用J2EE核心技术实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案,涵盖了JSP、servlet、EJB、JMS等技术,其中J2EE模式目录包括21个模式以及大量策略,帮助读者迅速熟练掌握J2EE技术...

    J2EE core design patterns j2ee 核心设计模式 chm

    《J2EE Core Design Patterns》是一本专注于Java企业级应用开发中的核心设计模式的重要书籍。设计模式是软件工程中经过实践验证的、解决特定问题的模板,尤其在复杂如J2EE(Java 2 Platform, Enterprise Edition)...

    J2EE核心模式 英文版 Core J2EE Patterns - Best Practices and Design Strategies [ Sun Microsystems Press, 2003]

    《J2EE核心模式:最佳实践与设计策略》是一本由Deepak Alur、John Crupi和Dan Malks编写的权威指南,它深入探讨了Java 2 Enterprise Edition(J2EE)平台下的设计模式、最佳实践及设计策略。该书通过一系列实用的...

    Core J2EE Patterns核心模式第二版源码

    《Core J2EE Patterns》是Java企业级应用开发的经典之作,它详细介绍了在J2EE平台上构建可扩展、高效、可维护的系统所使用的最佳实践和设计模式。这本书的第二版源码对于深入理解J2EE开发中的核心概念和技术具有极高...

    基于J2EE核心模式的组合Web框架研究

    在研究多种J2EE Web框架和J2EE核心模式的基础上,提出了一种基于J2EE核心模式的组合Web框架--CWFBP(Composite Web Framework based on core J2EE Patterns)模型.框架采用分层体系架构,集成了开源的J2EE Web框架和持久...

    core j2ee patterns 2nd editioin

    《核心的J2EE设计模式》是一本专为Java企业级开发者编写的经典著作,它深入探讨了在J2EE平台上构建可扩展、高效且可维护的系统所使用的最佳实践和设计模式。这本书的第二版进一步更新了内容,以适应不断演进的Java...

    Core J2EE Patterns

    Core J2EE Patterns

    Core J2EE Patterns 2nd Editioin

    二、J2EE核心模式 1. **单例模式**:在J2EE环境中,单例模式常用于创建全局唯一的服务器端组件,例如应用配置对象或事务管理器。 2. **工厂模式**:用于动态地创建对象,特别是在需要依赖注入或需要隔离具体实现时...

    code: J2EE Core Patterns

    《J2EE核心模式》源代码解析 J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一组服务、APIs和协议,以支持开发分布式、多层的企业应用。《J2EE Core Patterns》...

    J2EE核心模式

    《J2EE核心模式》是一本深入探讨使用Java企业版(J2EE)技术构建企业级应用程序的专业书籍。J2EE作为Java平台的企业版本,旨在为开发者提供一套全面的框架和服务,以支持分布式、多层架构的应用开发。本书的重点在于...

    SUN - Core J2EE patterns

    《SUN - Core J2EE patterns》不仅是一本关于J2EE模式的指南,更是一本实用的开发手册,它涵盖了从理论到实践的全过程,对任何希望深入了解J2EE架构并掌握其核心模式的开发者来说,都是一本不可或缺的参考书籍。...

    Core J2EE Patterns(Second Edition)

    通过学习《Core J2EE Patterns》第二版,开发者可以掌握J2EE开发的核心概念和技术,提升在大型企业级项目中的设计和实现能力。这本书对于想要深入了解J2EE平台和构建高质量企业应用的开发者来说,是一本不可多得的...

    Core j2ee Patterns Best Practices And Design Strategies

    标题《Core J2EE Patterns Best Practices And Design Strategies》和描述部分介绍了软件设计模式的重要性,将设计模式比喻为一个组织的“部落记忆”的有形体现。设计模式是解决常见问题的通用解决方案,它源自之前...

    J2EE Design Patterns Applied

    本书《J2EE Design Patterns Applied》旨在为读者提供一套全面的指南,通过实际案例深入探讨如何在J2EE环境中应用各种设计模式来解决常见问题。对于那些熟悉J2EE组件如Servlets、JSP页面和EJBs开发与部署的开发者来...

    J2EE Design Patterns

    中文译名:J2EE设计模式 作者: (美)William Crawford & Jonathan Kaplan <br/>本书一边在持久化和消息通信等领域中描述一些新模式,一边向你说明如何在J2EE应用的上下文中实现许多模式。有助于考虑问题...

    Core J2EE Patterns(英文版)

    ### Core J2EE Patterns:拦截过滤器模式 (Intercepting Filter) #### 背景与情境 在J2EE环境中,请求处理机制需要处理多种类型的客户端请求,这些请求可能涉及不同的处理逻辑。例如,某些请求可能直接转发到相应...

Global site tag (gtag.js) - Google Analytics