带你走进EJB--它都有哪些Bean

19 篇文章 3 订阅

         通过前面一系列EJB的博客,我们已经对EJB有了一个宏观的了解.为够更好的在企业项目中使用EJB,我们很有必要对EJB的一些基本内容进行深入,这次我们主要进行的主题是Enterprise Java Bean 中都有哪些Bean?

         EJB中主要有以下三种类型的Bean,分别是

  • Session Beans
  • Message-Driven Beans
  • Entities Beans

        

         每种类型的Bean都能够提供特定类型的服务.这三种分类能够帮助我们更好的去理解并组织一个应用程序.例如,Bean的这些类型能够让我们基于分层的架构来开发应用.


         Session Beans Message-Driven Beans(MDBs)用来创建业务逻辑,它们是由EJB容器来管理生命周期.Entities Beans是数据持久化的模型.跟容器一样,Entities Beans是通过Persistence provider(持久性提供者)来进行管理的.

 

           接下来我们通过一张图来总结上面所阐述的内容.同时也是对EJB类型的一个概括.

计算机生成了可选文字:ManagedbytheCOntain6rEJB3士SeSSionbeanMessage一drivenbeanJPAEntityManagedbytheEntityManagerlpersistenceprovider

 

 

        这里需要注意的是Java Persistence API EJB3 的容器是完全分开的.

 

SessionBeans

 

         一个会话Bean实例是客户端调用一个特定业务操作的结果,比如检查客户的访问历史.共有两种类型的Session Beans,有状态的会话Bean和无状态的会话Bean.

         有状态的SessionBean只为一个用户来服务,并且能够自动记录用户的状态同时你也不需要去写额外的代码.一个简单的例子就是你在淘宝购物所用的购物车的过程.

         无状态的SessionBean是不会保存的信息的和状态,无状态的SessionBean是可以重用的,它不会被立刻销毁.一个简单的例子就是你在淘宝购物所用到的查询购物记录的过程.

         Session Beans可以通过JavaRMI来进行本地或者远程调用.无状态的会话Bean还可以发布成Web Service.

 

 

有状态的Beans和无状态的Beans有什么区别呢?

 

        

        这两种 Session Bean 都可以将系统逻辑放在方法之中执行, 不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此一个使用者会有自己的一个实例。

        Stateless Session Bean 虽然也是逻辑组件, 但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB  容器并不会寻找特定的 Stateless Session Bean 的实体来执行这个method  换言之,很可能数个使用者在执行某个 Stateless Session Bean methods 时, 会是同一个 Bean的实例在执行。


        从内存方面来看,Stateful Session Bean StatelessSession Bean 比较,Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。

 

Message-DrivenBeans

 

         Message-Driven Beans (MDBs)Session Bean一样,都是用来处理业务逻辑.但是MDBs非常不同于Session Beans是客户端不会直接调用MDB的方法.MDB会被发到消息服务的消息所触发,它能够在不同的系统组件之间进行异步消息传输.有很多的消息服务例如:IBMWebSphere MQ, SonicMQ, OracleAdvanced Queueing, and TIBCO.MDB的一个简单例子是在淘宝中你请求查询相关宝贝的物流信息.

 

Entities


        Entities是能够持久化到数据库的那些java对象.EJB3 其中一个新特征就是能够处理持久化,关于什么是持久化可以参考我的博客:Hibernate 之 PersistenceEJB的持久化是通过JPA来进行管理的.它能够自动的将Java对象通过ORM技术持久化.

 

       至此,我们已经对EJB各个组成部分有了深一步的了解,知道在EJB中都有哪些Bean和他们基本的功能.

 

     

 

 


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
ejb-.xml 是 EJB (Enterprise JavaBeans) 的配置文件,用于配置 EJB 组件的属性和行为。它的具体内容取决于你的 EJB 组件的实现和需要。 以下是一个 ejb-.xml 文件的基本结构: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 3.0//EN" "http://java.sun.com/dtd/ejb-jar_3_0.dtd"> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0"> <!-- EJB 模块的描述 --> <description>My EJB Module</description> <!-- EJB 组件的声明 --> <enterprise-beans> <!-- Session Bean 的声明 --> <session> <!-- Session Bean 的名称 --> <ejb-name>MySessionBean</ejb-name> <!-- Session Bean 的类型 --> <ejb-class>com.example.MySessionBean</ejb-class> <!-- Session Bean 的事务属性 --> <transaction-type>Container</transaction-type> <!-- Session Bean 的声明周期 --> <stateless/> <!-- Session Bean 的 JNDI 名称 --> <ejb-local-ref> <ejb-ref-name>ejb/MySessionBeanLocal</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local>com.example.MySessionBeanLocal</local> </ejb-local-ref> </session> <!-- Entity Bean 的声明 --> <entity> <!-- Entity Bean 的名称 --> <ejb-name>MyEntityBean</ejb-name> <!-- Entity Bean 的类型 --> <ejb-class>com.example.MyEntityBean</ejb-class> <!-- Entity Bean 的主键 --> <prim-key-class>com.example.MyEntityPK</prim-key-class> </entity> <!-- Message Driven Bean 的声明 --> <message-driven> <!-- Message Driven Bean 的名称 --> <ejb-name>MyMessageDrivenBean</ejb-name> <!-- Message Driven Bean 的类型 --> <ejb-class>com.example.MyMessageDrivenBean</ejb-class> <!-- Message Driven Bean 的消息目的地 --> <activation-config> <activation-config-property> <activation-config-property-name>destinationType</activation-config-property-name> <activation-config-property-value>javax.jms.Queue</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>destination</activation-config-property-name> <activation-config-property-value>queue/MyQueue</activation-config-property-value> </activation-config-property> </activation-config> </message-driven> </enterprise-beans> </ejb-jar> ``` 在这个 ejb-.xml 文件中,你需要指定 EJB 模块的描述、EJB 组件的声明和各个组件的属性。这个文件使用 XML 格式编写,具体的格式和内容可以参考 EJB 规范文档和相关教程。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值