EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别
参考答案:
EJB(Enterprise JavaBeans)是基于JNDI(Java Naming and Directory Interface)、RMI(Remote Method Invocation)、JAT(Java Transaction API)等技术实现的。这些技术为EJB提供了命名和目录服务、远程方法调用以及事务管理能力。
至于SessionBean和EntityBean的区别,主要有以下几点:
- 用途:SessionBean主要用于完成一些服务器端的业务操作,如访问数据库、调用其他EJB组件等。而EntityBean则主要用于代表应用系统中用到的数据。
- 生命周期与持久性:SessionBean是一种非持久性对象,它不会在持久性存储器中存储数据,只在一次会话中有效,会话结束后会自动消除。而EntityBean是一种持久性对象,它代表一个存储在持久性存储器(如关系数据库或其他持久存储)中的实体的对象视图,或是一个由现有企业应用程序实现的实体。即使容器或服务器失效,EntityBean的状态数据仍然存在。
- 对客户机的意义:对于客户机来说,SessionBean和EntityBean的区别在于它们的持久性。SessionBean是非持久性的,而EntityBean是持久性的。这意味着,如果客户机需要与服务器上的对象进行交互,并且希望这些对象在会话结束后仍然存在,那么应该使用EntityBean。否则,如果对象只需要在一次会话中存在,那么应该使用SessionBean。
总的来说,SessionBean和EntityBean在用途、生命周期与持久性以及对客户机的意义等方面存在明显的区别。这些区别使得它们能够在不同的场景下发挥出各自的优势,从而满足不同的业务需求。