EJB,即企业级JavaBean。它是一个标准,而不是一个产品。其存在的目的是为后台开发人员提供一个标准的开发标准。它主要分成SessionBean,EntityBean和MessageDrivenBean。简而言之就是**服务器端**的一个标准。
在开发中我们需要先创建一个EJB项目,并在此EJB项目的ejbModule下创建一个带包名的SessionBean。然后在这个SessionBean中可以实现它的远程接口和本地接口,(以远程调用方式发布或者以本地调用方式发布)给出具体处理逻辑。当客户端和EJB位于同一JVM下时将进行本地调用或者远程调用,而当客户端和EJB位于两个不同的JVM时将必须通过远程调用的方式处理。
远程调用EJB,客户端拥有的是一个EJB的拷贝,调用是以值传递的方式进行的。具体见下图所示(盗图求原谅)通过远程方式调用时,传递的参数若是一个PoJo类,则其必须实现序列化接口,以字节码方式传递参数,而使用本地调用则相应的PoJo类可以不必实现序列化接口。
远程调用因为客户端和服务器不在同一个JVM上,就涉及到诸多有关分布式系统中的概念,如存根,骨架等,这些概念可以自行查找理解。
本地调用EJB是以传地址方式进行的。