EJB基础笔记(二)

EJB基础笔记(二)

第五章 会话Bean
会话 Bean 用于管理实体 Bean 和其它会话 Bean 的交互、访问资源,它们通常代表客户机执行任务。会话 Bean 对应于“模型-视图-控制器”体系结构中的控制器,因为它们都封装三层体系结构中的商业逻辑。
会话Bean有两种基本类型:无状态和有状态。

5.2 无状态会话Bean
无状态会话 Bean 是没有状态的,它们更易于 EJB 管理,因此它们处理请求更快且使用较少资源。但是这种性能优点是要付出代价的;无状态会话 Bean 很笨。它们记不住一个方法调用到另一个调用之间发生的事情。
// remote interface
public interface CreditService extends javax.ejb.EJBObject {
    public void verify(CreditCard card, double amount) throws RemoteException, CreditServiceException;
    public void charge(CreditCard card, double amount) throws RemoteException, CreditServiceException;
}
// home interface
public interface CreditServiceHome extends java.ejb.EJBHome {
     public CreditService create() throws RemoteException, CreateException;
}
无状态会话 Bean 没有查找方法,因为无状态 bean 全都相同,而且不是持久的。换句话说,在数据库中不能找到唯一的无状态会话 Bean。因为无状态会话 Bean 不是持久的,因此它们都是过渡服务。每个使用同一个会话 Bean 的客户机都得到同一个服务。
public interface HotelClerkBean implements SessionBean {
    InitialContext jndiContext;
    public void ejbCreate() {}
    ...snip...

5.4 有状态会话Bean
有状态会话 Bean 专用于客户机,并维护方法调用之间的对话状态。
import javax.ejb.SessionBean;
import javax.naming.InitialContext;
public class HotelClerkBean implements SessionBean {
    InitialContext jndiContext;
    //conversational-state
    Customer cust;
    Vector resVector = new Vector();
    public void ejbCreate(Customer customer) {}
        cust = customer;
    }
    public void addReservation(Name name, RoomInfo ri,
                               Date from, Date to) {
        ReservationInfo resInfo =
                        new ReservationInfo(name,ri,from,to);
        resVector.addElement(resInfo);
    }
    ...snip...

第六章 部署EJB技术

第七章 EJB客户机

第八章 联系

第九章 总结


你可能感兴趣的:(数据结构,bean,ejb)