循速渐进学用Session Bean(一)

Session Bean的作用

Session Bean代表客户应用和EJB容器之间的会话。Session Bean通常都是实现商业逻辑并且和entity bean交互以执行具体操作。不过session bean并不一定要使用entity bean。如果需要,它可以直接和数据库通信。

一个"Hello World"Session Bean

Enterprise JavaBean的结构在开始的时候比较难理解,不过只要你用过一下,EJB也不是太难。幸运的是,你可以无需涉及数据库连接或者是事务,就可以熟悉基本的EJB结构。要做到这一点,可以由最有名的"Hello World"bean开始。

当你在设计EJB应用的时候,你可能不知道是先由bean开始然后再创建接口,或者先由接口开始然后创建bean。我建议你最好由接口开始。因为如果你不知道客户如何使用bean,你就无需编写它。

创建Remote接口

列表6.1展示的是HelloWorldSession接口,它是"Hello World" session bean的Remote接口。

  Listing 6.1 Source Code for HelloWorldSession.java
package usingj2ee.hello;
  import java.rmi.*;
import javax.ejb.*;
  /** Defines the methods you can call on a HelloWorldSession object */
  public interface HelloWorldSession extends EJBObject
{
  /** Returns the session's greeting */
public String getGreeting() throws RemoteException;
  /** Changes the session's greeting */
public void setGreeting(String aGreeting) throws RemoteException;
  }

创建Home接口

一个session bean的Home接口包含有创建新session的方法。对于"Hello World"例子,有两个不同的create方法,一个没有参数,而另一个允许你提供自己的欢迎词。列表6.2展示了HelloWorldSessionHome接口。

  Listing 6.2 Source Code for HelloWorldSessionHome.java
package usingj2ee.hello;
  import java.rmi.*;
import javax.ejb.*;
  /** Defines the methods for creating a HelloWorldSession */
  public interface HelloWorldSessionHome extends EJBHome
{
  /** Creates a HelloWorldSession bean with default settings */
public HelloWorldSession create() throws RemoteException, CreateException;
  /** Creates a HelloWorldSession bean with a specific initial greeting */
public HelloWorldSession create(String aGreeting)
throws RemoteException, CreateException;
  }

时间: 2024-10-30 19:48:36

循速渐进学用Session Bean(一)的相关文章

循速渐进学用Session Bean(五)

创建一个实用的Session Bean HelloWorldSession例子的主要目的是帮助你熟悉一个session bean的整体结构.现在你已经熟悉了session bean的结构,你可以写一个更实用的bean了.特别地,你可以写一个由数据库中接收数据的bean. 以下的例子,假定你拥有一个SQL表格,里面包含有产品的代码和价格,你也可以使用以下SQL命令建立它: create table price(product_code varchar(10) not null primary ke

循速渐进学用Session Bean(四)

Session Bean要求.限制和许可 在EJB规范中,对Session Bean有一些限制和要求.这些限制会指出哪些是bean必须做的,哪些是不能做的,以及bean必须实现的一些方法和接口.也有一些规范指出哪些处理是允许做的,这是为了避免你以为这些处理是被其它限制禁止的. 实现SessionBean接口 session bean必须实现javax.ejb.SessionBean接口 声明该类为Public,而不是Final或者Abstract 要记住EJB容器需要创建bean实例,因此该类必

循速渐进学用Session Bean(三)

创建无状态的Session Bean 从编程的角度看,创建无状态的Session Bean和创建有状态的是一样简单的.除了在配置工具里修改一个设置外,仅有的一点不同是在bean的初始设计阶段,无状态的Session Bean并不记得方法调用之间的任何东西,bean需要的任何消息都必须由客户端获得.虽然无状态的Session Bean并不记得面向session的数据,不过可以在一个无状态的session bean中存放数据,只是不能存放与客户端相关的数据. 在HelloWorldSession的例

循速渐进学用Session Bean(二)

配置Bean Enterprise JavaBean令人不太习惯的地方是你并不运行它,而是配置它.根据所使用的容器,用一个打包工具来创建一个JAR文件,里面包含EJB类,XML配置描述文件和helper类. 不过要真正理解EJB,最好自己尝试一下. 每个EJB厂家都支持自己的配置工具.虽然某些工具或许更好用,不过大部分都是使用一样的模式.本文中将使用Sun的Java 2 Enterprise Edition SDK(J2EE SDK)将bean打包并配置它.J2EE SDK配置工具叫deploy

Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)

本文为原创,如需转载,请注明作者和出处,谢谢!     在本文主要介绍如何来开发一个Stateless Session Bean,并在未安装WebLogic10的机器上访问Session Bean.开发EJB3 Stateless Session Bean要比开发EJB2 Stateless Session Bean容易得多,只需要几个注释就可以搞定.读者可按如下的步骤来开发和调用EJB3 Stateless Session Bean: 第1步:编写远程接口     每一个Session Bea

JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(3)

session 作者:Junsan Jin 日期:2005-3-30 版本:1.0 信箱:junsan21@126.com ; junnef21@sohu.com 声明:本人保留本文的所有权利. 第三部分:开发Session Bean  新建EJB模块: 选择菜单:New〉Enterprise〉EJB〉EJB Designer,弹出对话框中选择New,选择Create empty EJB Module,点击next,填入名称Trader,一路OK即可.  设计EJB: 1.新建session b

JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(4)

session 作者:Junsan Jin 日期:2005-3-30 版本:1.0 信箱:junsan21@126.com ; junnef21@sohu.com 声明:本人保留本文的所有权利. 第四部分:测试Session bean 在前面的三个部分已经完整地讲述了一个Session Bean的建立过程.下面来建立测试工程.   添加测试类: 在右边的树型菜单中选中com.inspiresky.trader右键 〉new 〉package,在对话框的输入框最后添加user,新建com.insp

eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Bean

Session Bean除了可以使用注释来发布外,也可以使用相应的配置文件来发布.在这种情况下,就不 需要在接口和Session Bean中使用注释了.在JBoss中需要两个文件对Session bean进行配置.这两个文 件是ejb-jar.xml和jboss.xml.这两个文件应该META-INF目录中,该目录应该放在jar文件的根目录. ejb-jar.xml文件负责配置session bean,下面是一个典型的配置代码: <?xml version="1.0" encod

eclipse + JBoss 5 + EJB3开发指南(4):Session Bean中的注释方法

有时需要在Session Bean中初始化和释放一些资源.这些工作应该在SessionBean的@PostConstruct和 @PreDestroy方法中进行.其中用@PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB 容器在处理完一些其他工作后调用.用@PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁 之前调用. 除此之外,当有状态的SessionBean存在一定时间未被调用时,EJB容器会将该SessionBean对象钝