Spring5应用之基础扫盲

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者!
个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客
当前专栏:Spring5应用专栏_Aomsir的博客-CSDN博客

引言

Spring,英语读音为: [/sprɪŋ/] ,中文直译春,是一个轻量、开源的JavaEE框架,是目前企业级的解决方案。Rod Johnson于2004年3月在Sourceforge正式发布SpringFramwwork第一个版本。目前SpringFramework最新的版本为6.X

EJB的问题

Rod Johnson在正式发布SpringFramework第一个版本之前,撰写了一本名为《J2EE规范和开发》的书,主要概括了当时Java企业应用程序开发的现状以及指出了JavaEE规范中EJB(Enterprise Java Bean)框架的缺陷,那EJB的问题是什么呢?

  1. 运行环境苛刻:现在的Java开发基本都是Web开发,也基本都是运行在Tomcat服务器(Servlet引擎)中。但是EJB的代码必须运行在EJB容器中,就需要运行在更为复杂的应用服务器当中(支持Servlet与EJB容器),比如Oracle Weblogic Server(收费)、EJB容器、IBM Websphere(收费),这几个应用服务器是闭源的,后期我们对这个容器不满意是不能够自己拓展的
  2. 代码移植性差:运行在Oracle Weblogic Server需要实现Weblogic的接口,后期不能够直接运行在别的应用服务器上
  3. 测试困难:EJB的单元测试可能会相当复杂,因为EJB通常依赖于容器,因此需要在其所在的容器环境中进行测试,会增加测试的复杂性和难度
    Spring5应用之基础扫盲_第1张图片

什么是Spring?

Spring是一个轻量级的JavaEE的解决方案,整合众多优秀的设计模式

轻量级

轻量级主要是对比的EJB这个重量级的框架,轻量主要轻量在以下两个方面:

  1. 对于运行环境没有额外要求,可以选择Tomcat、Jetty、Weblogic、Websphere
  2. 代码移植性高,不需要我们实现任何额外服务器的接口

解决方案

JavaEE分层的开发主要是Controller、Service、Dao、DB这几个层。当然也有别的框架对这些层进行支持,比如Structs2、Mybatis等,但是他们只解决了其中的某一个层,没有解决所有层的问题,比如Structs2只解决了控制层,Mybatis解决了DAO层。Spring却可以解决除了DB层以外所有层的问题,所以称他为解决方案,如下图
Spring5应用之基础扫盲_第2张图片

参考文献

  • 孙哥suns说Spring5~学不会Spring? 因为你没找对人
  • Spring官方文档

你可能感兴趣的:(Spring5应用专栏,笔记,spring,java,tomcat)