用过EJB2.x的人估计对EJB带来的痛苦记忆犹新。一大堆的接口、一大堆的规定、一大堆的配置,痛苦不堪的调试……。因此,“我们是否需要EJB2”这个答案还是比较显然,那就是我们绝大多数系统不需要,除非你的系统真的是分布式计算,迫不得已需要用EJB2。

现在EJB3已经出炉了,开发的复杂度确实大大地减少,已经和编写普通Javabean无异,部署也非常方便。那么我们的系统是否需要采用EJB3呢?

我想用另一个问题来回答这个问题。那就是:我们要EJB3做什么?
  
   通常EJB能提供如下用途:分布式计算、可配置的事务管理、OR-Mapping,容器管理的安全性等。

如果你的系统确实有分布式计算,或者把计算逻辑隐藏在防火墙的内部,那么EJB3确实有用武之地。

如果没有这个需求,我认为我们的系统没有必要用EJB3。因为EJB和servlet毕竟在不同的容器中运行,大多数时候不同的容器有各自的classloader。而我们的servlet需要引用EJB的接口,实体Bean;servlet和EJB会公用很多的公共包...;这种复杂的状况导致打EAR包时非常麻烦,初级开发人员较难掌控。

如果你想利用EJB容器的事务管理能力,我觉得Spring完全可以替代EJB容器。
   如果你想利用EJB容器管理的安全性,我的观点是,容器管理的安全性完全不实用,至少在我们的系统中没法用。
   如果你想用EntityBean的OR-Mapping,那么用Hibernate完全可以替代。况且EJB3的Entitybean接口就是从hibernate继承过来的。

所以我觉得95%以上的系统,采用JSF(或Struts或其他)+Spring+hibernate还是最佳选择。原因很简单,这种结构的代码简单、好维护。

转载于:https://blog.51cto.com/feiye/41603

我们的系统是否需要EJB3?相关推荐

  1. 应大数据时代而写了个磁力搜索的网页- WWW.MOVIH.COM 磁力

    应大数据时代而写了个磁力搜索的网页- 索马里搜索磁力 http://www.,movih.com/ BT磁力示例网站:WWW.MOVIH.COM 采用分布式架构: JAVA系统:JBOSS7+EJB3 ...

  2. 【收集】EJB3.0的各应用服务器提供的JNDI接口

    关于JNDI and EJB JNDI (The Java Naming and Directory Interface,Java 命名和目录接口) 是一组在Java 应用中访问命名和目录服务的API ...

  3. EJB3.0开发环境的搭建

    EJB Container的介绍 SUN公司正式推出了EJB的规范之后,在众多的公司和开发者中引起了非常大的反响.标志着用Java开发企业级应用系统将变的非常easy.很多公司都已经推出了或正打算EJ ...

  4. jboss配置ejb容器_JBoss AS 7 EJB3池配置

    jboss配置ejb容器 现在已经发布了AS 7.0.1,下面让我们看看有哪些新的EJB3功能可用. 就像我在上一篇文章中提到的那样 ,AS 7.0.1现在允许您为无状态会话bean和MDB配置池. ...

  5. JBoss AS 7 EJB3池配置

    现在,AS 7.0.1已经发布,让我们看一下可用的EJB3新功能. 就像我在上一篇文章中提到的那样 ,AS 7.0.1现在允许您为无状态会话bean和MDB配置池. 当前,我们允许在子系统级别配置池, ...

  6. EJB3.0技术体系---学习笔记

    EJB3.0技术体系: 1.Enterprise Bean(企业Bean)理论及实例   Seession Bean   MDB 2.Persistence (JPA--数据持久化框架)   Enti ...

  7. JPA与EJB3的关系

    JPA是基于Java持久化的解决方案,主要是为了解决ORM框架的差异,它的出现在某种程度上能够解决目前ORM框架之间不能够兼容的问题,对开发人员来说,能够更好的在JPA规范下进行系统开发. JPA全称 ...

  8. 2015年系统架构师考试题详解

    原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...

  9. 城市路边停车收费系统/停车收费管理系统

    摘  要 近年来,随着社会的进步和发展,车辆也在迅速增加,城市交通的瓶颈不仅体现在道路交通的拥挤上,也体现在传统停车场管理效率和安全性大大滞后于社会的需要,给人们的生活带来了极大的不便.尤其,随着汽车 ...

  10. 酒店管理系统的设计与实现/酒店客房管理系统/酒店预定系统

    摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店管理系统当然也不能排除在外.酒店管理系统是以实际运用为开发背景,运用软件工程开 ...

最新文章

  1. JPA相关--Annotation
  2. Java多线程编程模式实战指南(三):Two-phase Termination模式--转载
  3. 驱动依赖_「世经研究」焦炭行业--仍旧依赖政策驱动
  4. php实例之简单的留言板,PHP实例一之简单的留言板
  5. http://www.iteye.com/topic/114392
  6. Alexey 大神接棒,YOLOv4 重磅来袭!快来一睹论文真容吧!| 原力计划
  7. flex读取bolg的代码
  8. 两台(或多台)电脑怎么实现文件共享
  9. html什么布局可以兼容多平台,腾讯游戏:浅谈游戏官网现状及设计趋势
  10. 【jzoj2162】【差分】【2017.7.12普及】Square
  11. clustalw序列比对_你还在用ClustalW做多序列比对?OUT了
  12. 物通博联为注塑机远程监控提供物联网解决方案
  13. 来自于游戏开发萌新的上路分享
  14. 【基于物理的渲染(PBR)白皮书】(五)几何函数相关总结
  15. VoLTE下视频彩铃与普通彩铃冲突的现象
  16. 解决百度地图搜索框在底层显示不出来
  17. 一元导数与多元求导数总结
  18. react native 调用手机内置地图
  19. 谢霆锋爱用的千元铁锅,在天猫国际俘获了一大波潮男
  20. 一些可以用于串口的一些通信协议

热门文章

  1. hbase倒序查询_hbase过滤器汇总【查询汇总】
  2. python 字符串_Python中常用的8种字符串操作方法
  3. python 两点曲线_全方位比较3种数据科学工具的比较:Python、R和SAS(附链接)
  4. brave mysql_MYSQL常用命令
  5. Java 多线程(一)并发、并行、线程、多线程、进程
  6. Kotlin — 适用于移动端跨平台
  7. console.log(iVal)是什么?显示在哪里?
  8. HTML — 快速开发总结篇
  9. DevExpress GridControl使用方法
  10. 【codevs3290】华容道