EJB学习纪要

EJB学习纪要为什么会突然要看看EJB这个老古董?前段时间准备再看看Spring的东西,当然就免不了要看一下Spring作者那本导致Spring模型的大作。其中说到Spring是在批判EJB的背景下产生的。所以,就得看看EJB这玩意儿到底搞了什么东西,粗略浏览了下目录,哗!EJB2太复杂了,算了,先从后面简化过了的EJB3看起吧,完了再反过来看看2是个什么样子。这回答真够曲折的,都快忘了当初的想法了,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

为什么会突然要看看EJB这个老古董?

前段时间准备再看看Spring的东西,当然就免不了要看一下Spring作者那本导致Spring模型的大作。其中说到Spring是在批判EJB的背景下产生的。所以,就得看看EJB这玩意儿到底搞了什么东西,粗略浏览了下目录,哗!EJB2太复杂了,算了,先从后面简化过了的EJB3看起吧,完了再反过来看看2是个什么样子。这回答真够曲折的,都快忘了当初的想法了,吐舌头

 

前后大概一个多月时间,现将学习后的要点汇总如下:

 

EJB作为J2EE中业务层、持久层的框架,其特点有3:

1.通过JNDI对业务层、持久层解耦合。

2.对业务层的代码提供了系统级的服务。

3.支持分布式应用。这是其最大特点,也是造成最后失败局面的最大原因。

EJB2实体Bean定义和控制复杂、繁琐。轻量级的ORMappin框架比它好很多。

经过实践证明,不应该在业务层维护会话状态,而应该在表现层。

 

EJB最有价值的东西是其服务理念,减轻了程序员编程负担,事务、安全等系统级需要考虑的东西由容器提供。

 

这里得说一下JNDI这个东西,记得板桥里人以前说过,大概意思是“不懂JNDI,JavaEE最学了一半”。这个理念从最初学Java就碰到了,就是在获取数据库连接时,一般采用从DataSource中获取Connection,当时也没深究,知道这么个语法要求就完了。现在发现在EJB里面,各个组件之间的访问都是通过JNDI来搞得,目的只有一个“解耦合”。

 

RMI:EJB2里面一次客户端访问远程Session Bean会走两次RMI调用(一次是通过Home接口的工厂方法获取远程接口,一次是通过远程接口访问实际调用的业务方法),EJB3里面简化成了一次(Home接口调用没了)。原理上说EJB正是通过RMI来实现分布式的。但从实际情况来看,更多情况用的是本地接口,即在一个JVM中直接调用对象。

 

总结:这个当年的庞然大物,在后来Spring、Hibernate等轻量级框架的冲击之下早就失去了吸引力,EJB3确实轻多了,实体Bean的概念与2完全不同,接受Hibernate的诸多理念。但市场早没了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188035.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm怎么安装requests模块_python3安装模块

    pycharm怎么安装requests模块_python3安装模块问题引入:今天在学习Python网络请求的时候,导入requests模块时一直报红色波浪线,如图:反复折腾,一直以为自己没有安装requests模块,反复安装反复卸载:安装方法:首先cd进入C:\Python27\Scripts 执行pipinstallrequests命令可以自动安装卸载方法:首先cd进入C:\Python27\Scripts 执行pipuninstallr…

    2022年8月26日
    10
  • java控制台输入数组_Java控制台输入数组并逆序输出的方法实例

    java控制台输入数组_Java控制台输入数组并逆序输出的方法实例输入一个数组,然后颠倒次序进行输出,这种算法在程序开发中经常用到,下面我们通过一个小实例来看看怎么实现在控制台输入一个数组,并让其逆序输出的。源码:importjava.util.Scanner;publicclassTest01{publicstaticvoidmain(String[]args){System.out.println(“请输入五个数”);int[]l=newi…

    2022年6月26日
    32
  • WPF-WrapPanel「建议收藏」

    WPF-WrapPanel「建议收藏」WrapPanel和StackPanel类似都是按照顺序排序。WrapPanel是以一次一行或一列的方式排布控件。默认是行,从左到右排列,排满后再排下一行。每一行以最高的控件来拉伸。转载于:https://www.cnblogs.com/bingbingzhe/p/7146210.html…

    2022年7月22日
    13
  • 微服务精通之Feign原理解析[通俗易懂]

    微服务精通之Feign原理解析[通俗易懂]前言       经过微服务精通之Ribbon原理解析的学习,我们了解到了服务消费者获取服务提供者实例的过程,都是通过RestTemplate来实现的,而且,都是模板化操作。那springcloud是否有哪个组件可以通过注解或者配置的方式,来简化这个过程?答案是有的,就是Feign。一、Feign是什么?       Feign是一个声明式的伪HTTP客户端,

    2022年10月4日
    3
  • 用c语言编写2048小游戏_2048小游戏c语言课程设计

    用c语言编写2048小游戏_2048小游戏c语言课程设计C语言实现简单的控制台2048小游戏。

    2022年8月1日
    8
  • LARGE_INTEGER 大整数结构体的解析「建议收藏」

    LARGE_INTEGER 大整数结构体的解析「建议收藏」在“WinNT.h”文件中定义了一个结构体LARGE_INTEGER,十分巧妙#ifdefined(MIDL_PASS)typedefstruct_LARGE_INTEGER{#else//MIDL_PASStypedefunion_LARGE_INTEGER{  struct{    DWORDLowPart;    LONGHighPart;  …

    2022年7月17日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号