什么是ejb?


相同仍旧在这个系列博客之处,谈谈对ejb的认识和理解。

        sun微公司对于ejb的定义大体是这种,ejb是一套用于开发和部署分布式组件的的架构。採用ejb的架构应用能够是扩展伸缩的,是能够被事务来管理的。

能够是一次编写。能够执行在不同的符合ejb规范的应用server平台上的。

        java企业级bean。

从大面上j2ee来讲。作为企业级开发的一个解决方式之中的一个。从javabean这样一个颗粒的角度来讲。ejb就是一个简单的javabean类。

通过打包成jar放到不同的server上,以及结合RMI来调用server上的ejb对象。

为什么要ejb?


企业级开发


            最重要的、理由最充分还是分布式。那么什么是分布式呢?对于企业级的业务逻辑复杂和大数据处理,而且永久的高可靠执行、应对业务处理能力的扩展和伸缩。这个就要求分布式的处理,而ejb就是这样一个拥有分布式及分布式业务处理的可选解决方式。为什么说是可选的,由于在后面还有像spring
mvc这样优秀的解决方式。所以这套从j2ee到ejb的解决方式就一直在企业应用领域所使用。当然且把这些ejb的缺点放到一边来学习学习这套解决方式。

        

ejb3.0


            而相对之前的ejb2.0,ejb3.0通过注解及一些的默认配置使ejb变得更加的“容器化”。极大的简化了之前因为笨重的xml配置,更加轻便敏捷的开发。

结构


持久化服务


                持久化我们应该不陌生。在hibernate、及ibatis还是后面的mybatis都提供了一整套解决方式。在ejb3.0中,有对应的java
persistence api。

可以将pojo对象映射到数据库中,ejb3.0在2.初级上统一了这套api规范,使这种entitybean对象可以在不同场合被使用。

                
                ejb 3.0 持久化的搭建:http://fansofjava.iteye.com/blog/336952  


和hibernate的差别



     首先须要讲明的是ejb是针对企业级开发应用的解决方式,而对于大多数情况下。不是全部的项目和应用都会涉及到如此的大的业务逻辑处理和大数据维护,由于不是每个电商都能做成阿里的。而hibernate在本质上是针对数据库的crud的提供了一套更为易于操作的解决方式,更准确的讲是在jdbc和sql查询的基础上。更为轻量级和应用,ejb包含了分布式、分布式声明事务、安全以及rmi这一套的规范。两者在合适的场合使用某个就好了,针对的详细的情况去选择。
            

enterprise bean


            这个部分分为两个方面,session bean和message-driven bean。

session bean

  
 stateful session bean


     什么是会话bean?

             支持业务逻辑操作。从client获得ejb对象知道对象销毁这样一个过程称之为session。



     什么是对象的状态?


             对象的状态的事实上就是实例变量(成员变量)的值。

相应就是类变量。


    什么叫有状态的会话bean?

             一个ejb对象可以为同一个client在多次请求(即方法调用)之前保持状态信息。

过程是这样一个过程,每次调用context对象的lookup方法时。事实上每次client去server请求ejb对象时,实际上是在server端的对象池里面来取这个ejb对象。

由于在ejb类的对象创建之初会给每一个对象指定id,类似于sessionID。

这个对象是通过原型复制的方式来获取的,这样每次对于client来讲都会有一个ejb对象来为它服务。这样就是简单的一个session
bean的调用和创建过程。

                 
          
            stateless session bean


            事实上就是当client来请求ejb对象时。每次都是一个ejb对象。这样不能区分不同client状态。实现的基本上用单例实现。


            message-driven bean

                 
  简单理解就是一种处理异步请求的java 类。使ejb可以互相之间交互。

后序


        整体上来讲ejb是企业开发的一种可选解决方式。也是j2ee中一个非常小的部分。有着非常良好的应用架构,当然也不是尽善尽美的。看到这样一句话来形容是最贴切的。你要么把事情做的尽可能简单,让人挑不出毛病;要么把事情做的尽可能复杂。让人找不出毛病。

ejb就是后面这样的,考虑了企业级开发的非常多问题,提供了解决方式。可是鉴于实际运用过程中,就像上面的讲的不是每个电商都能干到淘宝的级别。过于复杂的开发过程和维护,让人却步。由于人们更倾向于一种简洁高速的开发方式,特别是人们在提出了敏捷开发这样一个前景下。帕累托法则
告诉我们,用最少的时间去完毕最重要的部分80%的工作。

    

EJB(一)认识ejb的更多相关文章

  1. 远程调用jboss as 7上部署的ejb出现No EJB receiver available for handling 异常

    昨天倒腾了一天终于配置好了jboss as 7的域,今天又倒腾了一整天在上面部署了个EJB,然后试了一个利用JNDI来进行远程调用.下面记录一下过程中那些乱七八糟的问题: 首先是这个jboss-cli ...

  2. EJB开发基础——EJB规范

    1.EJB 容器          Enterprise Bean 是在称作 EJB 容器的特殊环境中运行的软件组件.容器容纳和管理 Enterprise Bean 的方式与 Java Web 服务器 ...

  3. NetBean 8 创建EJB

    一. 介绍 百度了一下关于在NetBean开发环境里创建EJB的教程,没有找到好的例子,2天的调试过程,写下来帮助后人. EJB (Enterprise Java Bean) 是一套高扩展性的开发企业 ...

  4. J2EE基础之EJB

    J2EE基础之EJB 1.什么是EJB?       EJB(Enterprise Java Beans),是JavaEE中的商业应用组件技术,是JavaEE三大组件(Servlet,JSP,EJB) ...

  5. 1.认识EJB

    什么是EJB?1. Enterprice JavaBeans(EJB)是一个用于分布式业务应用的标准服务端组件模型. . 采用EJB架构编写的应用是可伸的.事务性的.多用户安全的. . 采用EJB编写 ...

  6. EJB之Timer

    EJB Timer 要么: Annotation @Schedule 或者方法前声明@Timeout 要么: 在部署描述中定义timeout-method 如果是使用@Schedule, Timer在 ...

  7. EJB 教程推荐

    EJB教程 EJB概述 EJB创建应用 EJB无状态Bean EJB有状态会话Bean EJB持久性 EJB消息驱动Bean EJB注解 EJB回调 EJB定时器服务 EJB依赖注入 EJB拦截器 E ...

  8. 历史疑团之EJB

    在学习Sping框架的过程中,看到过很多次关于EJB的批判.使用了SpringMVC但是并没有真性情般体会到它的优点,所以有必要对传统的Java Bean和EJB来做一些了解,无奈百度搜了很多知识,还 ...

  9. ADF_Starting系列9_使用EJB/JPA/JSF通过ADF构建Web应用程序之测试J2EE Container

    2013-05-01 Created By BaoXinjian

  10. ADF_Starting系列8_使用EJB/JPA/JSF通过ADF构建Web应用程序之扩展UI Method

    2013-05-01 Created By BaoXinjian

随机推荐

  1. 《UNIX编程环境》的源代码的第二个版本Ubuntu下编

    1.在http://www.apuebook.com下载源代码 2. 视图READ root@ubuntu:/home/wl/mywork/apue.2e# cat -n README 1 Read ...

  2. Struts 2 初学的复习巩固

    Q:使用Struts2 开发程序的基本步骤? A: 1)加载Struts2类库: 2)配置web.xml文件,定义核心Filter来拦截用户请求: 3)开发视图层页面,即JSP页面: 4)定义处理用户 ...

  3. 用户手册User Guide的写法

    下面的内容仅代表个人观点,是在工作中总结出来的,如果有错误之处,还请指教. 转载请注明来自博客园---”邦邦酱好“: http://www.cnblogs.com/bangbangjiang/p/36 ...

  4. 多线程——达到Runnable介面

    部分博客(多线程--继承Thread类)介绍了java多线程的第一种实现方法--继承Thread类.这篇博客介绍另外一种方法--实现Runnable接口,并实现run方法. 还用上篇博客的样例.如今用 ...

  5. HDU 3036 Escape 网格图多人逃生 网络流||二分匹配 建图技巧

    题意: 每一个' . '有一个姑娘, E是出口,'.'是空地 , 'X' 是墙. 每秒钟每一个姑娘能够走一步(上下左右) 每秒钟每一个出口仅仅能出去一个人 给定n*m的地图, 时限T 问全部姑娘是否能 ...

  6. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  7. C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties

    Expression Bodied Function 它可以用在: methods user-defined operators type conversions read-only properti ...

  8. Win 10开门人类智慧的世界领先

    3月18日,从微软硬件project大会(WinHEC 2015)上传来好消息:今年夏天,Win 10将要正式公布.Win 10公布,有何新意? 微软新领导人纳德拉(Nadella)主张:运计算,大数 ...

  9. Java / Android 基于Http的多线程下载的实现

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/26994463 有个朋友需要个多线程现在的例子,就帮忙实现了,在此分享下~ 先说下 ...

  10. linux经常使用解压缩命令

    1.tar.gz 解压 tar -zxvf source.tar.gz 压缩 tar -zcvf target.tar.gz source1 source2 2.bz2 解压 tar -jxvf so ...