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
会话 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客户机
第八章 联系
第九章 总结