首页 > 自考资讯 > 自考知识

spring family,spring 家族

头条共创 2024-07-05

在Spring 框架开发出来之前,Java EE 以Sun 命名(后来被Oracle 收购,现已不复存在,以纪念Sun 对Java 开发进程的重大影响)(本书中谨保留该名称)。 EJB(Enterprise Java Bean)已被确立为标准。

在EJB 的“遥远”时代,EJB 开发需要大量的接口和配置文件。直到EJB 2.0时代,EJB开发还需要两个文件的配置。因此,配置工作量大于EJB 工作量。发展。

其次,EJB 运行在EJB 容器内,而Sun 定义的JSP 和servlet 运行在Web 容器内,因此,如您所料,您可以使用Web 容器来调用EJB 容器的服务。

这意味着需要添加一个调用配置文件来从Web容器调用EJB容器,需要同时开发两个容器,配置比较复杂。当时,开发人员批评Web容器调用EJB容器的服务,通过网络发送的模式,因为开发效率很低,结果,测试人员也了解了很多繁文缛节。有需要。在配置和测试EJB 之前解释它的细节也很困难。

就在大家都在批评EJB的时候,2002年澳大利亚工程师Rod Johnson(拥有音乐博士学位,从学术背景来看应该是音乐家)在他的名著《专家》中一对一地提出了Spring的概念J2EE。设计和开发。

随后在2004年,Rod Johnson领导的Spring项目发布了1.0版本。这彻底改变了Java EE 开发的世界。人们很快抛弃了笨重的EJB标准,迅速投入到Spring框架中,于是Spring就成为了Java的标准。真正的EE开发。

Spring使用强大的控制反转(IoC)来管理不同的Java资源,从而减少不同资源之间的耦合,使其侵入性非常小。这意味着使用Spring框架开发的代码可以直接使用,而无需继续使用Spring API。

Spring的面向方面编程(AOP)使用动态代理技术,使您能够按照规则进行配置编程,从而增强您的bean的功能(例如大量的try.catch)。数据库编程所需。 finally.语句和数据库事务控制代码逻辑让开发者可以专注于业务开发而不是资源的功能开发。

Spring还提供了许多与当时非常流行的框架集成的模板,例如持久层Hibernate的HibernateTemplate模板,以及iBATIS的SqlMapClientTemplate模板。这极大地整合和简化了当时主流技术的使用,具有强大的生命力并延续至今。

EJB 3.0规范也引入了Spring的概念以及来自Hibernate框架的集成思想,但值得注意的是它未能扭转颓势。主要原因是它的规范还比较僵化,很难与其他的融合。开源框架。然后它在EJB 容器中运行,但该容器仍然不容易使用或性能不佳。

注释或XM

只有早期的Spring 1.x 版本只能使用XML,因为当时的JDK 不支持注释。很快,随着JDK 升级到JDK5,添加了一个叫做注解的新特性,注解的使用变得广泛,Spring 也被分成了两个阵营:支持使用XML 的阵营和使用注解的阵营。

为了简化开发,Spring 2及之后的版本中还引入了注解。主要使用XML,辅以注释。

从Spring 3.0开始注解功能增加了,但是在Spring中使用注解和XML有很大的区别吗?有些人发现实现XML 太复杂,并且使用注释使它们分散在各处且难以控制。您可能需要了解许多框架的内部实现,才能准确使用开发注释时所需的功能。

至此,我们都有了使用业务类注解的默契。例如,在MVC开发中,控制器使用@Controller,持久层使用@Repository。例如,使用XML来配置数据库(如Redis)和第三方资源,这种配置方式至今在企业中仍然广泛使用。

使用注释和XML 可能是一个长期存在的话题,但无论如何它都是有意义的。

注释功能的增强,特别是Servlet 3.0 规范的引入,允许在不使用Web 的情况下部署Web 容器,并且从版本4.x 开始,对XML 的依赖越来越少。由于与XML的分离,Spring中使用注解开发已经成为主流。

同时,Pivotal团队在原有Spring的基础上继续简化Spring框架的开发,主要是通过注解的方式。因此,Spring Boot 并不是取代Spring 框架,而是简化并快速熟悉Spring 框架。

Pivotal团队于2014年发布了Spring Boot 1.0版本。该版本使用了特定的配置方法,因此开发人员不再需要定义样板配置。 2018年3月,Spring Boot发布2.0.0 GA版本。它基于Spring 5,引入了最新功能,有效支持Java 9开发。

Spring Boot致力于利用Java EE在企业互联网的强势地位,成为快速发展的快速应用开发领域的行业领导者。它也是近年来Java开发中最令人惊叹的项目之一。

随着近年来微服务的流行,除了基于注解的开发之外,越来越多的企业需要Spring Boot的其他绑定,比如默认绑定到服务器、Spring Boot最大配置等。尽快开发您的代码、发布并测试您的项目。

由于它满足了当今微服务快速开发、测试和部署的需求,越来越多的公司选择Spring Boot作为开发选项,使得Spring Boot更加繁荣。本书主要关注Spring Boot,这是一个令人兴奋的开发工具。

Spring Boot 的优点

说起Spring Boot,我们先来了解一下它的好处。根据官方文档,Spring Boot的好处是:

创建一个独立的Spring 应用程序。

Tomcat、Jetty 和Undertow 都包含在内,因此您无需部署WAR 文件。

如果需要,允许您通过Maven 获取启动程序。

尽可能自动配置Spring。

提供生产就绪的功能,例如指标、运行状况检查和外部配置。

不需要生成代码或XML 配置。

在本次讨论中,首先,Spring Boot 是一个基于Spring 框架构建的应用程序,其次,它嵌入在Tomcat、Jetty 和Undertow 等服务器中,不需要传统的WAR 文件进行部署,可以看到它不需要。 t。 Spring Boot 项目不需要。 Tomcat等传统服务器必须单独下载。

同时提供了依赖于Maven(或Grandle)的starter,通过这些starter项目你可以以Java应用程序的形式运行Spring Boot项目。其他服务器配置。

在配置方面,Spring Boot提供了Spring框架最大程度的自动配置,并广泛使用自动配置来最大限度地减少开发人员对Spring的配置。

此外,它还提供一些监视、自动发现功能和外部配置,但没有额外的代码或XML 配置要求。

这就是Spring Boot的主流理念:约定优于配置。 Spring Boot大多数情况下都有默认配置,如果需要自定义,只需要在配置文件中配置几个属性即可。这非常有用。

Spring Boot 为部署这些项目所需的功能提供了入门依赖项。例如spring-boot-starter-web 捆绑Spring MVC 依赖的包, spring-boot-starter-tomcat 绑定嵌入式Tomcat。 Spring Boot的一个特点是开发者可以尽快搭建开发环境,快速开发部署。如果您是传统开发人员,您可能还不知道这意味着什么,但这没关系。

为了演示Spring Boot 的功能,以下部分分别展示和比较传统Spring MVC 项目和简单Spring Boot 入门的示例。

传统Spring MVC与Spring Boot对比

传统的Spring MVC项目开发需要配置一个DispatcherServlet和一个Spring IoC容器来开发一个简单的Spring MVC项目。当然,如果你使用的是Servlet 3.1规范,你也可以通过继承Spring MVC提供的AbstractAnnotationConfigDispatcherServletInitializer来配置你的Spring MVC项目。

下面是可执行代码的示例。如果您不熟悉Spring MVC 也没关系。这是为了说明开发更加复杂。后面我们会详细讨论Spring MVC的开发原理。

假设您已经将所需的Spring和Spring MVC相关的依赖包导入到您的项目中,您就可以开始配置DispatcherServlet了。例如,代码清单1-1通过继承AbstractAnnotationConfigDispatcherServletInitializer来配置Spring MVC DispatcherServlet。

代码清单1-1 Spring MVC 配置请注意代码中的粗体文本。本文介绍Java配置文件—— WebConfig.java。它的主要功能是为Spring MVC的核心类DispatcherServlet配置上下文,如清单1-2所示。

代码清单1-2 配置DispatcherServlet 上下文

8a51308f7a89424289b91c9c78e3bd39~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=Fwoz0ij%2BeZHhK%2F4wjJuJJr1WTcs%3D通过上述代码配置好Spring MVC开发环境后,就可以开发Spring MVC控制器了。这样,您就可以开发一个简单的控制器,如代码清单1-3所示。

代码清单1-3 开发Spring MVC 控制器

fa43cf02bd30413db68d02c5145bf15a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=82o2ITSIJvN%2BUfOJ%2Fez2Te3442Y%3D 您现在已经完成了传统的Spring MVC 开发,但您还需要第三方服务器(例如Tomcat、WebLogic 或其他服务器)来部署您的项目。启动服务器后,打开浏览器并输入相应的URL。如果您的项目名称为SpringMVC,则输入http://localhost:8080/SpringMVC/test.do,您将看到如图1-1所示的页面。

be7f2167d11e44809e11860a15ffe864~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=7L8KQK1BtJ1ihNZ%2FMOZ%2FqGUwvs0%3D图1-1 测试经典Spring MVC 项目

从以上角度来看,传统的Spring MVC开发仍然需要大量的配置内容,对设计人员的要求很高。开发完成后,开发者还需要找到兼容的服务器来运行,比如Tomcat或者Jetty。这仍然需要大量的工作,不仅需要开发,还需要配置和部署。

当你使用Spring Boot进行开发时,你会发现一切都非常简单。不过,在介绍阶段没有必要详细讨论。这是一个留待以后讨论的问题,所以我在这里只简单讨论一下。首先,在IDE中创建一个Maven项目,并将其名称定义为Chapter1。这允许您查看Maven 配置文件pom.xml 并修改其内容,如代码清单1-4 所示。

代码清单1-4 配置Spring Boot依赖环境

cc4e42b1edf8482c93f75acbba35e735~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=%2F7PQ%2B3POc1Nf5MniqinDC5nqdpA%3D 从粗体代码中可以看到,Maven配置文件引入了多个Spring Boot starter,Spring Boot根据Maven配置的starter找到对应的依赖,并将对应的jar包加载到项目中。此外,将绑定服务器加载到项目中也无需处理它们。正如Spring Boot 的承诺,我们遵循约定优于配置的原则来绑定服务器并尽可能实现Spring 配置。您现在需要做的就是开发运行Spring Boot 应用程序的类。为此,创建一个新类——Chapter1Main,如代码清单1 到5 所示。

代码清单1-5:开发Spring Boot 应用程序

f9cb2056204a448ea178f2a51e6c88a1~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=4GpOWtdPldW9c%2Fi16wgwUguE3Pw%3D此示例实施现已完成。如果您从未使用过Spring Boot,您会感到非常惊讶。 Spring MVC 的配置完成了吗?“是的,你已经完成了。现在你可以使用Java 应用程序形式运行Chapter1Main 类。接下来是Spring Boot 执行日志。”

379d9f2e1604472cbc6c434efac0afbf~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=CpWqnzh1ReACnfqlngDlQ8PA4gI%3D 从日志中我们可以看到Tomcat已经启动并加载了我们作为Spring MVC控制器开发的Chapter1Main,并且还将相应的路径(/test)映射到了我们开发的测试方法。所以,是时候进行测试了。打开浏览器并在地址栏中输入http://localhost:8080/test。结果如图1-2所示。

2fc0299128bf46b28b41cd52d2dad71e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720779927&x-signature=NhCAWYNyIVx4et804Ol73Xysns4%3D图1-2 Spring Boot执行结果

从上面的比较可以看出,Spring Boot 与传统的Spring MVC 相比有很大的不同吗? Spring Boot 允许直接开发,这是一个优势。如果您想要传统配置,Spring Boot 会设置规则。这意味着您可以使用Spring Boot 以约定的方式直接开发和运行您的项目。

如果您需要更改配置,正如我们承诺的那样,我们还提供了简单的配置规则,用于配置您的Spring 项目并尽可能绑定相应的服务器。这使得开发人员能够以更少的配置执行更直接的开发项目。

对于这些微服务来说,能够让你快速搭建环境的项目是首选,而Spring Boot提供了这种可能性,而且Spring Boot还提供了监控能力。

随着云技术的出现,微服务备受市场关注,代表Java微服务时代的Spring Boot微服务开发时代已经到来,与Spring Cloud结合,分布式系统开发变得轻而易举。建立在。这绝对是令人兴奋的,因为它是一些没有能力自行开发分布式架构的公司所需要的,以满足每个人的需求。

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢