因为教学上的需要,重新梳理了下EJB几种接口的职能,讲的是EJB3,虽然按照课件也能做出一个运行良好的EJB程序来,但是要想比较好的理解EJB3的工作原理,只知道这些注解还是不够的,特别是涉及到的接口(home和remote)。
以下对这些接口做了一些总结:
Home接口 | EJBHome:负责创建远程EJB对象(即实现了EJBObject接口的Remote对象) | public interface HaiRemoteHome extends EJBHome { HaiRemote create() throws RemoteException, CreateException; } |
EJBLocalHome:负责创建本地EJB对象(即实现了EJBLocalObject接口的Remote对象) | |
Remote接口:里面定义我们的业务方法 | EJBObject : 仅用于远程调用的业务接口 | public interface HaiRemote extends EJBObject { String sayHai() throws RemoteException; } |
EJBLocalObject : 仅用于本地调用的业务接口 | |
SessionBean | 会话bean:定义Bean的生命周期方法和实现Remote接口中定义的方法 | public class HaiBean implements SessionBean { public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException { System.out.println("set session context"); } public void ejbCreate() throws EJBException { System.out.println("ejb create"); } public void ejbRemove() throws EJBException, RemoteException { System.out.println("ejb remove"); } public void ejbActivate() throws EJBException, RemoteException { System.out.println("ejb activate"); } public void ejbPassivate() throws EJBException, RemoteException { System.out.println("ejb passivate"); } public String sayHai() throws RemoteException { return "Hai, EJB 2!"; } } |