基于SSM的课程思政教学素材库管理系统的设计与实现外文翻译资料

 2022-08-27 10:16:57

英语原文共 22 页,剩余内容已隐藏,支付完成后下载完整资料


Spring入门

本章包括  1.spring和springboot的要领

 2.初始化Spring项目

 3.spring前 景 的概述

虽然希腊哲学家赫拉克利特并不是一位众所周知的软件开发人员,但他似乎在这个方面上有很好的处理能力。 有人引用他的话说:“唯一不变的是变化。”这句话抓住了软件开发的基本真理。

今天我们开发应用程序的方式与一年前不同,五年前,十年前,当然还是15年前,当时 Rod Johnson的书《专家一对一的 J2EE设计与开发》引入了S p r i n g框架的初始形式 (Wrox, 2002,http://mng.bz/oVjy)。

当时,开发的最常见的应用程序类型是基于浏览器的Web应用程序,由关系数据库支持。 虽然这种类型的开发仍然很重要,而且Spring已经为这些类型的应用程序做好了充分的准备,但我们现在也有兴趣开发由微服务组成的应用程序,这些微服务将用于云端,可将数据持久保留在各种数据库中。还有新兴的反应式编程的目的是提供更大的可扩展性和改进的性能。

随着软件开发的发展,Spring框架也发生了变化,以解决现代开发问题,包括微服务和反应性编程。 Spring还通过引入SpringBoot来简化自己的开发模型。 无论您正在开发一个基于数据库的简单Web应用程序,还是构建一个基于微服务的现代应用程序,Spring都是帮助您实现目标的框架。这一章是你在旅途中的第一步通过使用Spring进行现代应用程序开发。

1.1 什么是Sping ?

我知道你可能渴望开始写Spring应用程序,我向你保证,在本章结束之前,你会开发出一个简单的应用程序。 但是首先,让我用一些基本的Spring概念来设置舞台,这些概念将帮助您理解Spring的滴答声。

任何非平凡的应用程序都由许多组件组成,每个组件负责自己的整体应用程序功能,与其他应用程序元素协调以完成工作。 当应用程序运行时,需要以某种方式创建和引入这些组件。

Spring的核心是提供一个容器,通常称为Spring应用程序上下文,用于创建和管理应用程序组件。 这些组件或bean,在Spring应用程序内容中连接在一起,以完成一个完整的应用程序,就像砖块、砂浆、木材、钉子、管道和电线被绑定在一起以制造房子一样。

将bean连接在一起的行为是基于称为依赖注入 (DI)的模式。 与其让组件创建和维护它们所依赖的其他bean的生命周期,依赖项注入的应用程序依赖于一个单独的实体(容器)来创建和维护所有组件,并将其注入需要它们的bean中。 这通常是通过构造函数参数或属性访问器方法完成的。

例如,假设在应用程序的许多组件中,您需要处理两个组件∶ 库存服务(用于获取库存级别)和产品服务(用于提供基本的产品信息)。 产品服务取决于库存服务能够提供一套完整的产品信息。 图1.1说明了这些bean和Spring应用程序内容之间的关系。

除了其他核心容器之上,Spring和完整的相关库组合提供了Web框架、各种数据持久化选项、安全框架,与其他系统的集成、运行时监视、微服务支持、反应性编程模型以及现代应用程序开发所必需的许多其他特性。

从历史上看,引导Spring应用程序内容连接bean的方法是使用一个或多个xml文件,这些文件描述了组件及其与其他组件关系。例如,下面的XML声明了两个

图1.1应用程序组件由Spring应用程序上下文管理并相互注入。

Bean,库存服务bean和产品服务bean,并通过构造函数参数将库存服务bean连接到产品服务中∶

然而,在最近的Spring版本中,基于Java的配置更常见。 以下基于Java的配置类相当于 XML配置∶

Configuration注释向Spring指示这是一个配置类,它将向Spring应用程序内容提供bean。配置的类方法用@Bean注释,表明它们返回的对象应该作为bean添加到应用程序内容中(默认情况下,它们各自的bean ID将与定义它们的方法的名称相同)。

与基于XML的配置相比,基于Java的配置提供了一些好处,包括更大的类型安全性和改进的可重构性。 即使如此,只有在Spring无法自动配置组件时,才需要使用Java或XML进行显式配置。

自动配置的根源在于Spring技术,即自动配置和组件扫描组件扫描,Spring可以自动从应用程序的类路径中发现组件,并在Spring应用程序上下文中将它们创建为bean。通过使用自动配置,Spring会自动向组件注入它们依赖的其他bean。

最近,随着SpringBoot的引入,自动配置已经远远超出了组件扫描和自动配置的范围。Spring Boot是Spring框架的一个扩展,它提供了多项生产力增强功能。 这些增强中最著名的是自动配置,其中SpringBoot可以根据类路径、环境变量和其他因素的条目,对需要配置和连接的组件进行合理的猜测。

我想展示一些演示自动配置的示例代码。 但我不能。 你看,自我配置很像风。 你可以看到它的效果,但没有代码可以向你显示并说'看! 这里有一个自动配置的例子'事件发生,组件被启用并提供功能而无需编写代码。 正是这种无需代码对自动配置至关重要,使它如此美妙。

Spring Boot自动配置大大减少了构建应用程序所需的显式配置(无论是XML还是Java)。 事实上,当您完成本章中的示例时,您将有一个正在运行的Spring应用程序,它只有一行Spring配置代码!

Spring Boot增强了Spring的开发能力,因此很难想象没有它就开发Spring应用程序。 出于这个原因,这本书把Spring和SpringBoot当作同一个。 我们将尽可能多地使用Spring Boot,并且只有在必要时才使用显式配置。 而且,由于Spring XML配置是使用Sprin g的老方法,我们将主要关注基于java的sping配置。

不过,这些闲聊、喋喋不休和废话已经够多了。 这本书的标题包括动作中的短语,所以让我们开始移动,您可以开始使用Spring编写您的第一个应用程序。

1.2 初始化Spring应用程序

通过这本书的过程,您将创建TacoCloud,这是一个在线应用程序,用于订购人类创造的最美妙的食物-Tacos。 当然,您将使用Spring、SpringBoot和各种相关的库和框架来实现这个目标。

您将找到几个初始化Spring应用程序的选项。 虽然我可以知道您完成手动创建项目目录结构的步骤和定义构建规范,这是浪费时间-花时间更好地花在编写应用程序代码上。 因此,您将依赖SpringInitializr来引导您的应用程序。

Spring Initializr既是一个基于浏览器的Web应用程序,也是一个REST API,它可以生成一个基本的Spring项目结构,您可以用您想要的任何功能充实它。使用SpringInitializr的几种方法如下∶

  1. 从web应用程序,网址为http∶//start. spring.io
  2. 从命令行使用curl命令
  3. 从命令行使用SpringBoot命令行界面
  4. 使用Spring工具套件创建新项目时
  5. 使用IntelliJIDEA创建新项目时
  6. 使用NetBean创建新项目时

与其花本章的几页来讨论这些选项中的每一个,我已经在附录中收集了这些详细信息。在本章中及这本书中,我将向您展示如何使用我最喜欢的选项创建一个新项目∶ SpringInitializr支持Spring工具套件。

顾名思义,Spring Tool Suite是一个非常棒的Spring开发环境。但是它还提供了一个方便的SpringBoot Dashboard功能,(至少在我写这个的时候)在其他任何IDE选项中都没有。

如果您不是Spring Tool Suite用户,那就好了;我们仍然可以成为朋友。 跳到附录,并替换最适合您的Initializr选项,以获得以下部分中的说明。 但是要知道,在这本书中,我可能偶尔会引用Spring工具套件的特性,比如SpringBootDashboard。 如果您不使用Spring Tool Suite,您将需要调整这些说明以适应您的IDE。

1.2.1 使用Spring Tool Suite初始化Spring项目

要在Spring Tool Suite中启动一个新的Spring项目,请转到File菜单并选择New,然后选择Spring Starter Project。 图1.2显示了要查找的菜单结构。

图1.2在Spring Tool Suite中使用Initializr启动一个新项目

一旦选择Spring Starter Project,就会出现一个新的项目向导对话框(图1.3)。向导第一页向您询问一些一般项目信息,例如项目名称、描述和其他基本信息。 如果你熟悉的话Maven pom.xml文件的内容,您将将大多数字段识别为Maven构建规范中的项。 对于 TacoCloud应用程序,填写如图1.3所示的对话框,然后单击Next。

图1. 3指定Taco Cloud应用程序的一般项目信息

向导的下一页允许您选择要添加到项目中的依赖项(见图1.4)。 请注意,在对话框的顶部附近,您可以选择要以项目为基础的SpringBoot的版本。 这默认为当前可用的最新版本。 这通常是一个好主意,保持原样,除非你需要针对不同的版本。

至于依赖项本身,您可以扩展各个部分并手动搜索所需的依赖项,或者在'可用'列表的顶部搜索框搜索他们。 对于Taco Cloud应用程序,您将从图1.4所示的依赖关系开始。

图1. 4选择启动器依赖项

此时,您可以单击Finish生成项目并将其添加到工作区中。 但是如果您感觉有点冒险,请再次单击Next查看新的启动程序项目向导的最后一页,如图1.5所示。

默认情况下,新项目向导调用SpringInitializrhttp∶//start.spring.io生成项目。 一般来说,无需覆盖此默认设置,这就是为什么你可以在第二页点击Finish的原因

图1.5可选地指定备用Initializr地址

但是,如果由于某种原因,您正在托管自己的Initializr克隆(可能是您自己机器上的本地副本,也可能是运行在公司防火墙内的自定义克隆),那么您将需要在单击 Finitializr实例之前更改Base Url字段。

单击Finish后,项目将从Initializr下载并加载到工作区中。 等一会儿,让它加载和构建,然后你就会准备开始开发应用程序功能。 但首先,让我们看看Initializr给了你的好处

1.2.2 查Spring项目结构

在IDE加载项目之后,展开以查看它包含的内容。 图1.6显示了SpringTool Suite中扩展的TacoCloud项目。

图1.6初始Spring项目结构,如Spring工具套件所示

清单1. 1.初的aven构建规范

清单1.2Taco Clou引导类

清单1.3基线应用程序测试

在Taco Cloud Application Tests中没有什么可看的∶类中的一个测试方法是空的。 即使如此,这个测试类仍然执行了一个基本检查,以确保Spring应用程序上下文能够成功加载。 如果您做了任何阻止创建Spring应用程序内容的更改,则此测试将失败,您可以通过修复问题做出反应。

还请注意带有@Run With(Spring Runner.class)注释的类。 @Run With是一个JUnit注释,提供了一个指导JUnit运行测试的测试运行程序。 想想它将插件应用于JUnit以提供自定义测试行为。 在这种情况下,JUnit被赋予Spring Runner,它是Spring提供的测试运行程序,它为创建测试将运行的Spring应用程序内容提供了便利。任何其他名称的测试...

. 如果您已经熟悉编写Spring测试,或者正在查看一些现有的基于Spring的测试类,您可能已经看到了一个名为 Spring JUnit4Class Runner的测试运行器,是SpringJUnit4Class Runner的别名,并在Spring4.3中引入了它,来删除与JUnit特定版本(例如,JUnit4)的关联)。 不可否认,别名更容易阅读和输入。

@SpringBoot测试告诉JUnit使用SpringBoot功能引导测试。 现在,将此视为在一个主()方法中调用Spring Application.run()的测试类足够了。 在这本书的过程中,你会看到@SpringBootTest几次,我们将揭示它的一些功能。

最后,还有测试方法本身。 虽然eRunWith(SpringRunner.class)和CSpringBootTest的任务是为测试加载Spring应用程序内容,但如果没有任何测试方法,他们将没有任何事情要做。 即使没有任何断言或任何类型的代码,这个空测试方法也会提示这两个注释完成它们的工作并加载Spring应用程序内容。 如果这样做有任何问题,测试失败。

在这一点上,我们结束了对SpringInitializr提供的代码的审查。 您已经看到了一些用于开发Spring应用程序的样板基础,但是您仍然没有编写一行代码。 现在是时候启动IDE,清除键盘上的灰尘,并向Taco Cloud应用程序添加一些自定义代码了。

1.3 编写Spring应用程序

因为您刚刚开始,我们将开始对Taco Cloud应用程序进行一个相对较小的

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[405619],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。