SSH完全的开源产品,如果用SSH就必然会用到大量的开源的东东,从数据库到逻辑到控制到前端,开源产品大拼装,

其中SSH中的三大核心,Struts相当于JSF,spring相当于EJB,hibernate相当于JPA,

具体反映到IDE对于两种框架的支持上,本人用的是netbeans,对经典的JAVAEE支持的非常好,所有的配置文件都集成到了IDE中,甚至还包括了一个中文免费的EJB容器:Glassfish,反观SSH,虽然也有大力支持,但是配置起来相对繁琐,不过也还好,总之,SSH和经典JAVAEE之间确实是相互补充,共同进步的关系。

SSH优点:运行速度快,开发调试一点就来

缺点:配置显复杂了些,拼装起来有种大杂烩的感觉

经典JAVAEE优点:集成度高,整体感强

缺点:EJB容器相对对电脑要求高些,开发调试速度慢

 
 

SSH是标准的  面向对象框架。这里的标准有两层含义,一指它是一个非常合格的面向对象框架,一指它近乎业界的标准。一个 一直被认为与它有点冲突的真正的标准是EJB。

EJB更像一个企业级应用API。它的目标是在应用程序服务器与企业应用之间建立一个通信层。也就是说它在服务器与应用之间插入了一个协议。两者之间则通过协议进行通信。通过协议进行通信的好处不言而喻,它为两者的独立发展提供了一个非常牢固的基础。

这个基础的来源便在于抽象化:EJB通过将应用需求进行高度,标准化的抽象,重新定义了几乎所有(至少它在尝试)的应用程序服务。因为只有在这些服务得到成功的抽象以后,服务器开发者才能得到它真正的自由,应用程序开发者也才能得到它的。在这个意义上,SSH与之相比,实在是九牛一毛,不值得比。

虽然现在的SPRING现在庞大无比,但是一开始的SSH其实是一个最简单的OO框架:它只是简单地处理了一下分别处于两头的持久层与表现层并在中间层上提供了一个简单的对象创建器(IOC)。我把这个一开始的SSH当成我们现在讨论的对象。因为即使SPRING提供再多的东西,也无法改变SSH作为一个整体在系统开发中的地位:一个面向对象的支撑器。

等等,一个面向对象的支撑器?

看到这里,还会有人想把它与EJB相比吗?(当然,如果把现在的SPRING整个服务体系也搬进来的话,一定要比还是有办法的)。因为对象与服务显然是两个完全不同的概念。对象只是服务的一种。EJB的假设是对象这种东西应该是由应用程序开发者自己去处理的,平台不应该处理这样的问题。因为它属于用户程序领域(这是SPRING之所以能向J2EE斜插一刀的原因)。另一方面,对象服务本来就比较贴“身”,平台的确不太便于处理这样的服务?

SSH与EJB 比较的更多相关文章

  1. 各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

    转自:https://my.oschina.net/pacoyang/blog/151695 POJO(pure old java object)是普通java类,有一些private的参数作为对象的 ...

  2. ssh和ejb的区别

    转自:https://zhidao.baidu.com/question/137154342.html SSH(Struts,Spring,Hibernate) Struts进行流程控制,Spring ...

  3. JAVABEAN EJB POJO区别

    1.POJO POJO(Plain Old Java Object)这种叫法是Martin Fowler.Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来 ...

  4. JavaBean 与 EJB 的区别

    JavaBean在一般情况下指的是实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的 setter.getter方法,如果一个JavaBean需要在不同的JVM的进程中进行传递 ...

  5. 对EJB的认识

    对EJB的认识 接触EJB以来有一段时间了,走马观花一样把它所涉及到的东西看了一遍,随着深入了解越来越感觉到ejb的很强大,用了java后觉的java好用.学历SSH觉的比java好用.学了ejb觉的 ...

  6. Java系列之EJB 理解

    EJB = Enterprise Java Bean,它和JavaBean有本质的区别,最好不要将他们混淆起来,就像不要将Java和 Javascript混淆起来一样.EJB有3中类型:Session ...

  7. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  8. Struts 2 Learning

    目录 . J2EE简介 . JAVA EE应用的分层模型 . 搭建Struts2 Demo应用 . struts2流程 . struts2的常规配置 . 实现Action . 配置Action . 配 ...

  9. 我们如何学好java

    转载:http://www.zhihu.com/question/19945685 马士兵有一篇文章,我觉得写得很好,原文转载如下,希望题主可以好好读读. ---------------------- ...

随机推荐

  1. Linux之用户管理

    1.添加普通用户 [root@server ~]# useradd chenjiafa   //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa  ...

  2. 兼容性调试-- 在谷歌浏览器中,td 设置colspan的失效的问题

    通过设置table width="100%"table-layout="fixed" 解决

  3. Table of Contents - Redis

    Getting Started 安装配置环境 Redis 命令 Keys Strings Lists Hashs Sets Sorted Sets Transactions Connection Se ...

  4. 【CSS3】---元素隐藏(是否占据空间、是否可点击)

    在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击. { display: none; /* 不占据空间,无法点击 */ } ...

  5. Android开发之AlarmManager详解

    AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver ...

  6. MVC System.Web.Mvc.ModelClientValidationRule”同时存在

    错误 2280 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET ...

  7. 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)

    这次在项目中要实现订单功能,所以要完成在线支付,在线支付一般有网银支付和第三方支付(支付宝.paypal等)这两种途径,未简单起见,先完成支付宝在线支付功能,由于项目基于Yii框架,且使用UTF-8编 ...

  8. 郑州轻工业OJ1400--这不可能是情书吧

    地址:http://acm.zzuli.edu.cn/problem.php?id=1400 #include<stdio.h> #include<string.h> #inc ...

  9. cass实体编码列表

    地物名称 编码 图层 类别 参数一 参数二 实体类型 三角点 131100 KZD 20 gc113 3 SPECIAL,1 三角点分数线 131110 KZD 附 LINE 三角点高程注记 1311 ...

  10. 链表的创建、测长、排序、插入、逆序的实现(C语言)

    #include <stdio.h> #define END_elem 0 struct node { int date; struct node * next; }; //链表创建 no ...