英语原文共 17 页,剩余内容已隐藏,支付完成后下载完整资料
第1章 Spring Boot简介
Spring框架是一个非常流行和广泛使用的Java框架,用于构建web和企业应用程序。Spring的核心是一个依赖注入容器,它提供了以多种方式配置beans的灵活性,比如XML、Annotation和JavaConfig。多年来,Spring框架通过满足现代业务应用程序的需求,如安全性、对NoSQL数据存储的支持、处理大数据、批处理、与其他系统的集成等,呈指数级增长。Spring及其子项目成为构建企业应用程序的可行平台。
Spring框架非常灵活,并且提供了多种配置应用程序组件的方法。有了一组丰富的特性和多个配置选项,配置Spring应用程序变得复杂且容易出错。Spring团队创建Spring Boot是为了通过其强大的自动配置机制解决配置的复杂性。
本章简要介绍Spring框架。你将使用传统的SpringMVC和JPA开发一个web应用程序(不使用Spring Boot)。然后你将看到传统方法的难点,并了解如何使用Spring Boot开发相同的应用程序。
Spring框架概述
如果你是Java开发人员,那么您很有可能听说过Spring框架并在项目中使用过它。Spring框架最初是作为依赖注入容器创建的,但它远不止于此。Spring框架非常流行有几个原因:
- Spring的依赖注入方法鼓励编写可测试代码,
- 易于使用的、强大的数据库事务管理功能
- Spring简化了与其他Java框架的集成,与JPA/Hibernate ORM和Struts/JSF web 框架一样
- 用于构建web应用程序的最先进的web MVC框架
除了Spring框架,还有许多其他Spring子项目可以帮助构建满足现代业务需求的应用程序:
- Spring Data:简化从关系和NoSQL数据存储的数据访问
- Spring批处理:提供一个强大的批处理框架
-
Spring安全:用于保护应用程序的健壮安全框架
- 显示用户列表
你做到了。但是,等等,仅仅显示从数据库表中提取的用户详细信息列表不是太麻烦了吗?
让我们诚实公正。所有这些配置不只是针对这个用例。这个配置成为应用程序其余部分的基础。再做一次的话,如果您想快速启动并运行,这项工作太多了。它的另一个问题是,假设你想用类似的技术堆栈开发另一个SpringMVC应用程序,你可以复制并粘贴配置并对其进行调整,对么?
记住一件事:如果你不得不一次又一次地做同样的事情,你应该找到一种自动化的方法来做。
除了一次又一次地编写相同的配置之外,你在这里还看到其他的问题了吗?让我们看看我在这里看到的问题。
- 你需要搜索特定Spring版本的所有兼容库并配置它们
- 大多数情况下,你将配置数据源、实体管理工厂、动作管理器等。Beans也是一样。如果Spring能自动为你做这件事不是很好吗?
- 类似地,你可以配置SpringMVC beans,如ViewResolver、MessageSource等。大多数时候都是这样。如果Spring能自动为你做,那就太棒了。
如果Spring能够自动配置beans呢?如果你可以使用简单的可自定义属性自定义自动配置呢?
例如,并非将DispatcherServlet url-pattern映射到/,你希望将其映射到/app/。与其将Thymeleaf视图放在/WEB-INF/views文件夹中,不如将它们放在/WEB-INF/templates/文件夹中。
所以你基本希望Spring能自动做事,提供更灵活更简单的方式,来控制默认配置。你即将进入Spring Boot的世界,在那里你的梦想可以成真。
简单的依赖项管理
首先要注意的是名为spring-boot-starter-*的依赖项的使用。记得我说过,“大多数时候,你使用相同的配置”。因此,当你添加springboot-starter-web依赖项时,在开发Spring MVC应用程序时,默认情况下,它会拉取所有常用的库,如spring-webmvc、jackson-json、validation-api和tomcat。
我们添加了spring-boot-starter-data-jpa依赖项。这拉取了所有的spring-data-jpa依赖并添加Hibernate库,因为大多数应用程序将Hibernate用作jpa实现的工具。
自动配置
不仅spring-boot-starter-web添加了所有这些库,而且还配置了常用的已注册beans,如DispatcherServlet、ResourceHandlers、MessageSource等,以及可感知的默认值。
我们还添加了spring-boot-starter-thymeleaf,它不仅添加了thymeleaf库依赖项,还自动配置了ThymeleafViewResolver beans。
我们没有定义任何数据源、实体管理工厂或动作管理 beans,但它们已自动被创建。这是怎么做到的呢?
如果类路径中有任何内存中的数据库驱动程序,如H2或HSQL,那么Spring Boot将自动创建内存中的数据源,并将自动用可感知的默认值注册实体管理工厂和动作管理 beans。
但是你使用的是MySQL,因此需要显式地提供MySQL连接的详细信息。你已经在application.properties文件中配置了这些MySQL连接细节,Spring Boot使用这些属性创建了一个数据源。
嵌入式Servlet容器支持
最重要和兴奋的是,我们创建了一个简单的Java类,该类带有一些神奇的注释(@SpringApplication),它含有一个main()方法。通过运行那个main()方法,我们可以运行应用程序并在http://localhost:8080/上访问它。servlet容器从何而来?
我们添加了spring-boot-starter-web,它自动拉取spring-boot-starter-tomcat。当我们运行main()方法时,它将tomcat作为一个嵌入式容器启动,这样我们就不必在任何外部安装的tomcat服务器上部署应用程序。如果我们想使用Jetty服务器而不是Tomcat呢?你只需从spring-boot-starter-web中排除spring-boot-starter- tomcat,并包括spring-boot-starter-jetty。就这样。
但这看起来很神奇!我能想象出你在想什么。你在想Spring Boot看起来很酷,它能自动为你做很多事情。你还不完全明白在幕后它是如何运作的。不是么?
我能理解。看魔术表演很有趣,但神秘感对软件开发来说就没那么有趣了。别担心,我们会仔细研究每一件事,并详细解释幕后发生的事情。我不想在第一章把所有的东西都告诉你。
总结
本章简要概述了各种Spring配置样式。目的是向你展示配置Spring应用程序的复杂性。另外,你还通过创建一个简单的web应用程序快速了解了Spring Boot。
下一章将更详细地介绍Spring Boot,并展示如何以不同的方式创建Spring Boot应用程序。
第2章Spring Boot入门
本章详细介绍了Spring Boot及其特性。然后本章将介绍创建SpringBoot应用程序的各种选项,如Spring初始化器、Spring工具套件、Intellij IDEA等。最后,本章将探讨生成的代码并研究如何运行应用程序。
什么是Spring Boot?
Spring Boot是一个固执己见的框架,它帮助开发人员快速、轻松地构建基于Spring的应用程序。Spring Boot的主要目标是快速创建基于Spring的应用程序,而不需要开发人员一次又一次地编写相同的样板配置。Spring Boot的主要功能包括:
- Spring Boot starters
- Spring Boot自动配置
- 优雅的配置管理
- Spring Boot传动
- 易于使用的嵌入式servlet容器支持
Spring Boot Starters
Spring Boot提供了许多启动程序模块来快速使用许多常用技术,如SpringMVC、JPA、MongoDB、SpringBatch、SpringSecurity、Solr、ElasticSearch等。这些启动器预先配置了最常用的库依赖项,因此你不必搜索兼容的库版本并手动配置它们。
例如,spring-boot-starter-data-jpa starter模块包括使用Spring Data JPA所需的所有依赖项,以及Hibernate库依赖项,因为Hibernate是最常用的JPA实现工具。
Spring Boot自动配置
Spring Boot通过消除手动设置样板配置的需要来解决Spring应用程序需要复杂配置的问题。
Spring Boot对应用程序有一个固定的看法,并通过基于各种标准注册beans来自动配置各种组件。条件可以是:
- 类路径中特定类的可用性
- 存在或不存在Spring bean
- 存在系统属性
- 不存在配置文件
例如,如果类路径中有spring-webmvc依赖项,Spring Boot假设你正在尝试构建一个基于SpringMVC的web应用程序,如果DispatcherServlet尚未注册,则会自动尝试注册它。
如果类路径中有任何嵌入式数据库驱动程序,比如H2或HSQL,并且没有显式配置数据源bean,那么Spring Boot将使用内存中的数据库设置自动注册数据源bean。你将在第3章中了解有关自动配置的更多信息。
优雅的配置管理
Spring支持使用@PropertySource配置将可配置属性外部化。Spring Boot通过使用合理的默认值和绑定到bean属性的强大输入安全属性将其进一步扩展。Spring Boot支持为不同的配置文件提供单独的配置文件,而不需要太多配置。
Spring Boot执行器
能够获得生产中运行的应用程序的各种细节,这对于许多应用程序来说是至关重要的。Spring Boot执行器提供了各种各样的生产就绪特性,而不需要开发人员编写很多代码。Spring执行器的一些特性是:
- 可以查看应用程序bean的配置详细信息
- 可以查看应用程序URL映射、环境详细信息、配置参数值
- 可以查看注册的运行状况检查度量
易使用的嵌入式Servlet容器支持
传统情况下,在构建web应用程序时,你需要创建WAR键入模块,然后将它们部署到外部服务器上,如Tomcat、WildFly等。但是,通过使用Spring Boot,你可以创建一个JAR类型的模块,并很容易地将servlet容器嵌入到应用程序中,以便应用程序成为一个独立的部署单元。另外,在开发过程中,可以使用Maven或Gradle等构建工具从IDE或命令行轻松地将Spring Boot JAR类型模块作为Java应用程序运行。
在下面的章节中,你将了解更多关于这些特性以及如何有效地使用它们的信息。
使用Spring Boot Maven插件来创建Fat JAR
你可以直接从IDE运行应用程序,也可以使用Maven spring-boot:在开发过程中运行,但是最终你需要创建一个部署单元,它可以在没有IDE支持的生产环境中运行。通过执行以下maven目标,你可以使用spring-boot-maven-plugin创建单个部署单元(一个fat JAR)。
mvn clean package
现在目标目录中有两个有趣的文件:springboot-basic-1.0-SNAPSHOT.jar 和springboot-basic-1.0-SNAPSHOT.jar.original。springboot-basic-1.0-SNAPSHOT.jar.original文件将只包含已编译的类和类路径资源。
但是如果你看一下springboot-basic-1.0-SNAPSHOT.jar,你可以找到以下内容:
- src/main/java中编译的源代码类和src/main/resources中的静态资源将位于BOOT-INF/classes目录中
- 所有依赖JAR在BOOT-INF/lib目录中
- org.springtramework.boot.Loader包中的类实现了运行Spring Boot应用程序的Spring Boot魔术
你可以使用maven-shade-plu
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239501],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。