简单认识EJB

JavaEE是Java开发中很重要的部分,而JavaEE的核心是EJB。


在认识EJB之前,需要了解下什么叫企业级应用??

企业级应用是指为商业组织、企业而开发部署的应用,是面向企业的,俗称2B业务。企业级应用的结构复杂,涉及资源众多、事务密集、数据量大、用户多,有较强的安全性考虑。(B2B是指企业之间通过专用网络或Intenet进行数据交换,开展交易活动的商业模式。)

互联网应用是面向个人(消费者/用户)的,俗称2C业务。

商务软件的核心是业务逻辑。业务逻辑抽象了整个商务过程的流程,它相当于实现特定任务的类。Java EE将业务逻辑从客户端软件抽取出来,封装在一个组件中。这个组件运行在独立的服务器上,客户端通过网络调用组件提供的服务以实现业务逻辑,客户端软件的功能只是负责发送调用请求和显示处理结果。

 

封装业务逻辑的组件就是EJBEnterprise JavaBean)。

EJBJava EE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。EJBJ2EE一部分,称为Java企业bean,分别是Session BeanEntity BeanMessageDriven BeanEJB3.0推出之后,Entity Bean被单独分出来,形成新的规范JPA

 

EJB底层实现技术

EJB的实现基础是RMI。通过RMI技术,J2EEEJB 组件创建为远程对象,客户端就可以通过网络调用EJB 对象。

 

对象序列化是将对象状态转换为可以存储或传送的形态的过程。序列化期间,可将对象当前状态写入到临时或持久性的存储。

 

RPCRemote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务的跨越OSI模型的传输层和应用层的协议。说白了就是能在本地计算机调用远程计算机上的函数。

 

RMIRemote Method Invocation,远程方法调用)是使用Java开发在JDK1.1中实现的,是Java实现远程对象调用的技术,是Java网络分布式应用程序的核心解决方案之一。它可以看作是Java版的RPC,将对象序列化和RPC两个概念结合起来。允许在一个JVM上的对象调用在另一个JVM上的对象的方法。这两个虚拟机可以是运行在同一计算机上的不同进程,也可以是运行在网络上不同计算机中。


这种机制给分布计算的系统设计、编程都带来了极大的方便。使用RMI设计程序,可以不必清楚底层实现。但执行效率会比本地执行慢很多。

 

EJB中提到的服务集群实际是指通过集群访问系统部署在不同服务器上的功能模块。

 

参考资料:EJB到底是什么



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单EJB2 示例: 1. 创建一个接口 MyRemoteInterface,定义一个方法 sayHello: ```java import java.rmi.RemoteException; import javax.ejb.EJBObject; public interface MyRemoteInterface extends EJBObject { public String sayHello() throws RemoteException; } ``` 2. 创建一个实现 MyRemoteInterface 接口的 bean MyBean: ```java import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; public class MyBean implements SessionBean, MyRemoteInterface { private static final long serialVersionUID = 1L; public void ejbCreate() throws CreateException { } public String sayHello() throws RemoteException { return "Hello World!"; } public void ejbRemove() throws EJBException, RemoteException { } public void ejbActivate() throws EJBException, RemoteException { } public void ejbPassivate() throws EJBException, RemoteException { } public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException { } } ``` 3. 在 ejb-jar.xml 文件中声明 MyBean: ```xml <?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> <enterprise-beans> <session> <ejb-name>MyBean</ejb-name> <home>MyRemoteInterface</home> <remote>MyRemoteInterface</remote> <ejb-class>MyBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar> ``` 4. 部署到服务器上,可以通过 JNDI 查找 MyBean 并调用 sayHello 方法: ```java import javax.naming.InitialContext; import javax.naming.NamingException; public class MyClient { public static void main(String[] args) throws NamingException, RemoteException { InitialContext ctx = new InitialContext(); MyRemoteInterface myBean = (MyRemoteInterface) ctx.lookup("MyBean/remote"); System.out.println(myBean.sayHello()); } } ``` 以上就是一个简单EJB2 示例,它展示了如何创建一个远程 EJB,并在客户端调用它的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值