EJB 最佳实践:改进远程对象设计-JSP教程,面向对象/设计

在这一新系列文章中,您将学习如何最佳设计和优化 Enterprise JavaBeans 组件、如何减少 RMI 通信和 JNDI 访问以及最有效地使用企业应用程序。在每篇技巧文章中,企业 Java 编程方面的主要权威人士 Brett McLaughlin 将提供最佳实践或设计模式。许多技巧文章将建立在前面的文章之上。建议您按顺序阅读这些技巧文章,因为它们将帮助您构建有助于您自己的企业应用程序编程的策略和设计方法。在本篇(也是第一篇)技巧文章中,Brett 演示了业务接口模式如何能够改进远程对象设计。
如果您开发过许多 EJB 组件,那么您很清楚远程对象设计的难点。分布 EJB 组件的核心是能够将 bean 的实现(由 Bean 类表示)与其接口(由远程或本地接口表示)分开。接口是公开给客户机的,并且通常用在与实际的实现类不同的 JVM 中。这意味着在代码这一级它们彼此之间很少有依赖关系;又意味着,接口中可能有一些不在实现中的方法,反之亦然。例如,实现类的实用程序方法不必放在远程接口上。
警告:不要将这种模式与实体 bean 一起使用!
业务接口模式仅适用于会话 bean 和消息驱动的 bean;该模式不适用于实体 bean,它永远都不应该直接公开给应用层。事实上,业务接口模式在 EJB 2.0 实体 bean 中会停止工作,因为这些类被声明为 abstract,所以不能被选中。
到目前为止,没有什么是听起来不可管理的,但您要认识到有时方法中的不匹配是无意的,这时情况就会有所变化。在部署 bean 时,您会认识到需要一个新方法,此时,很自然地就会发生这种情况。将方法添加到了 bean 实现类中,但随后忘记将它添加到远程接口。现在您已经添加了所必需的功能,但还没有办法让远程用户真正访问它。这时就需引入业务接口(Business Interface)模式。
注:业务接口模式不是避免远程对象设计中不匹配的方法的唯一方法。请阅读补充文章“业务接口模式的替代方法”以学习其它解决方案。
业务接口模式
首先,需要编写一个定义所有业务方法的接口。这非常象远程接口,但不具备 EJB 语义。清单 1 显示了 Library 对象的一个简单的业务接口。
清单 1. Library 业务接口
package com.ibm.library;
import com.ibm.library.exceptions.NoSuchBookException;
import java.util.List;
public interface ILibrary {
public List getBooks();
public List getBooks(String category);
public Book getBook(String isbn)

时间: 2024-10-05 00:16:22

EJB 最佳实践:改进远程对象设计-JSP教程,面向对象/设计的相关文章

Struts实践入门(原创)-JSP教程,面向对象/设计

//欢迎完整引用.转载,你可以通过http://www.dev-club.com与我联系.Struts实践入门作者:八脚鱼1.简介    Struts是apache Jakarta的一个开放元码的项目(    http://jakarta.apache.org/struts/index.html),为开发web应用程序提供了一个框架(framework).Sturts建议我们使用MVC Model 2 的模式开发web应用程序.Sturts提供了Controller层组件,这些组件可以和多种已有

关于EJB的持久化对象技术分析-JSP教程,面向对象/设计

摘自久久学院表格型的关系型数据库与树型Java对象之间的映射问题是一个至今争论不休的问题,好在现在已经有了一些好的解决方案.在本文中,我们将介绍EJB技术是怎样用自已特定的方式来解决这个问题的. 只要是涉及到保存及查询信息 ,那绝大多数应用程序都需要与关系数据库打交道.但由于关系数据库与Java对象在结构上有着本质的区别,关于它们之间的映射关系对于那些Java开发者们来说,是一个很令人头痛的问题.关系型数据库是以表格方式存储数据的,而Java对象是以树型方式表现的.这种类型上的不匹配引发了各种各

多线程设计要点-JSP教程,面向对象/设计

1.多线程中有主内存和工作内存之分, 在JVM中,有一个主内存,专门负责所有线程共享数据:而每个线程都有他自己私有的工作内存, 主内存和工作内存分贝在JVM的stack区和heap区.2.线程的状态有'Ready', 'Running', 'Sleeping', 'Blocked', 和 'Waiting'几个状态,'Ready' 表示线程正在等待CPU分配允许运行的时间.3.线程运行次序并不是按照我们创建他们时的顺序来运行的,CPU处理线程的顺序是不确定的,如果需要确定,那么必须手工介入,使用

EJB最佳实践:数据验证出现在什么地方最合适

尽管数据验证是所有企业应用程序的必需组件,但人们对数据验证过程的理解通常很肤浅,并且不能很好地执行.在这篇 EJB 最佳实践专栏文章中,Brett McLaughlin 解释了对基于 EJB 技术的系统进行数据验证的一些幕后概念,并向您展示了如何避免意外的或不可理解的错误消息. 每当您处理应用程序的业务逻辑时,都需要执行验证.应用程序必须有办法确保传入的数据格式正确,并且必须能够执行特定于业务的验证(如针对库存复核采购订单). 我们将讨论数据验证逻辑应该出现在 EJB 应用程序代码的 什么位置,

JSP最佳实践: 组合JavaBean组件和JSP技术

使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据 简介:Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计. 到目前为止,我们在 JSP 最佳实践系列文章 中着重讨论的都是较为基本的主题.在前两篇文章中, 您学习了如何使用 JSP include 机制来将外部内容引入到您的网站或 Web 应用程序.我们使用了两种不 同的 include

JSP最佳实践: 使用JSTL来更新JSP页面

简介:JSP 标准标记库(Standard Tag Library,JSTL)是一组以标准化格式实现许多通用的Web站点 功能的定制标记.在 JSP 最佳实践这一部分,Brett McLaughlin将向您介绍JSTL,阐述如何转变JSP页面 来使用高功能性的标记. JSP技术的优势之一在于其定制标记库工具.除了核心JSP标记,如 jsp:include 之外,定制标记库工 具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作.一旦您创建了定制标记库(简称 taglib),当您扩展项目或转

《设计模式》学习笔记1——七大面向对象设计原则

前言 根据这一次的学习计划,系统学习设计模式之前,先系统学习和理解设计原则.面向对象设计原则有如下几类. 原则一:单一职责原则 这是面向对象最简单的原则,对于定义,引用书中所说: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因 这里最重要的地方,我个人觉得应该是一个功能领域这一句. 设计的前提是思考,只有进行了思考才能谈得上设计,所以实际设计过程中最重要的还

JSP最佳实践: 使用JSP include机制改进外观

简介:本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制. 请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的 网站或 Web 应用程序页面中. 欢迎阅读 Java 专区中最新的 最佳实践系列文章.如果您看过先前的系列文章,那么您会知道最佳实 践旨在让您快速了解各种 Java 技术的有用方面.这一系列的最佳实践专门讨论 JavaServer Pages(JSP

JSP最佳实践:使用JSP include机制改进外观

本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制.请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的网站或 Web 应用程序页面中.欢迎阅读 Java 专区中最新的最佳实践系列文章.如果您看过先前的系列文章,那么您会知道最佳实践旨在让您快速了解各种 Java 技术的有用方面.这一系列的最佳实践专门讨论 JavaServer Pages(JSP)技术,它是核心