前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EJB学习纪要

EJB学习纪要

作者头像
全栈程序员站长
发布2022-11-10 20:47:01
3970
发布2022-11-10 20:47:01
举报

大家好,又见面了,我是你们的朋友全栈君。

为什么会突然要看看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.cn/188035.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年9月28日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档