Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
 

EJB最初的设计思想考虑的是为分布式的应用服务的,分布式是针对大型应用构造的跨平台的协作计算,EJB最初的目的就是为这种计算服务的。但是软件发展到目前为止,大多数应用不需要采用分布式的解决方案,因此用EJB显得太臃肿了。Spring的出现恰恰为了解决这个问题。举个例子来说,EJB就是导弹,专门设计为打高空飞机。但是现在发现飞机不多。于是将它用来对付步兵,这个实在太糟糕了。这个时候有人发明了狙击步枪(Spring),发现对付步兵太好用了。

Spring框架是一个广受欢迎的但是非标准的开源框架。它主要由Interface21公司开发和控制。Spring框架的体系结构是基于注射依赖(DI)模式。Spring框架使用了大量的XML配置文件,它可以独立应用,或者在现有的应用服务器上工作。

这两个框架有着一个共同的核心设计理念:它们的目标是为松耦合的POJO类提供中间件服务。框架通过在运行时截取执行环境,或将服务对象注射给POJO类的方式,将应用服务和POJO类“连接”起来。POJO类本身并不关注如何“连接”,而且也很少依赖于框架。

这样,开发者可以将注意力集中在业务逻辑上,可以对他们的POJO类进行与框架无关的单元测试。并且,由于POJO类不需要继承框架的类或实现框架提供的接口,开发者可以在更加灵活性的基础上构建继承体系,和搭建应用。

尽管有着共同的理念,但这两个框架采取了不同的方式来提供POJO服务。由于已经出了大量的比较Spring和EJB3.0的文章。但发现,随着Spring的发展,其中对Spring的认识难免有失偏颇的地方,因此,本文将考察它们之间几个关键的认识上的误区进行分析。

EJB讲解:https://baike.baidu.com/item/EJB/144195?fr=aladdin
私人总结:EJB属于分布式开发,但是目前市场中小型企业都是非分布式项目,所以为了应市场要求,springBoot横空出世,恰恰解决了中小企业的问题,springBoot诞生就是市场的应召的微服务。就像上述所说,导弹打步兵目的可以实现,但代价太高。狙击枪才是最好的选择。

最新文章

  1. 用户、角色、权限三者多对多用hibernate的一对多注解配置
  2. 阿里云centos6.5下搭建javaWeb运行环境
  3. Dubbo系列_概述
  4. ionic ngcordova map 地圖
  5. Python操作RabbitMQ初体验(一)
  6. 一些好用的nginx第三方模块
  7. linux下hexdump和od命令:显示文件十六进制格式
  8. adb出现adb server is out of date时的解决的方法
  9. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
  10. android 程序崩溃crash日志的捕捉
  11. matlab中小技巧
  12. 【Js应用实例】图片预览
  13. Spring Date Jpa on update current_timestamp 自动维护创建时间和更新时间
  14. [转载] Bitmap的秘密
  15. .Net 序列化和反序列化SerializerHelper
  16. Linux信号实践(2) --信号分类
  17. C++11标准中常用到的各种算法汇总.
  18. 第一章02: 常用的DOS命令
  19. BZOJ 4556: [Tjoi2016&Heoi2016]字符串(后缀数组 + 二分答案 + 主席树 + ST表 or 后缀数组 + 暴力)
  20. Cracking The Coding Interview 5.7

热门文章

  1. 【codevs1306】广播操的游戏
  2. vim升级到8.0
  3. 红米note怎么打开USB调试模式
  4. ImportError: No module named flask.ext.login
  5. 26.Extjs 部门列表信息展示页面
  6. 关于file文件操作的头文件 【LINUX】 (转载)
  7. bzoj 3231: [Sdoi2008]递归数列【矩阵乘法】
  8. [SDOI2011]消防(单调队列,树的直径,双指针)
  9. mysql机制总结
  10. python自动化测试学习笔记-unittest参数化