ejb基础

三个接口介绍:

 home接口其实就是一个工厂,用来产生EJBObject
localhome接口也是一个工厂,同样用来生成EJBObject
这两者的区别主要是在远程调用的时候应该使用home对象,而在本地直接调用的时候则应该使用localhome接口,
 这种考虑在EJB2.x中增加的,用来解决效率问题
不论是sessionbean,entrybean,messagebean都是容器中实际管理的对象,客户端不能直接调用他们,
必须通过home接口生成ejbobject对象间接的使用,因此ejbobject对象其实就是bean对象的一个代理你如何获得home对象呢,
答案是要通过JNDI,将home对象的名称给JNDI后他会返回给你确定的home对象

ejb调用流程:

ejb是支持远程调用,客户端值需要ejb的业务类接口,服务端值需要ejb的业务类实现,然后客户端只需要调用jndi(这个规范实现很复杂,使用比较简单,还是很多人用)的lookup方法,就可以使用业务类接口直接调用服务端实现类的方法了,这中间,应用服务器做了很多处理,基本流程都是:客户端通过jndi和业务类接口,调用对应ejb应用服务器厂商jndi的lookup服务端实现类方法,然后ejb应用服务器生成业务类的存根和代理,存根从服务端序列化到客户端,客户端调用的ejb业务接口就是调用这个存根,然后这个存根又通过rmi协议或者iiop协议发送命令到业务类的代理,代理再调用业务类实现,最终把执行结果返回到客户端

 

你可能感兴趣的:(ejb基础)