SpringwwwlyjustneBoott18669144449 starter

Spring Boot 基础
开始使用 Spring Boot 编写能直接运行的 Spring 应用程序

Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。在本教程中,将学习如何使用 Spring Boot 的 starter、特性和可执行 JAR 文件结构,快速创建能直接运行的基于 Spring 的应用程序。

简单介绍 Spring Boot 后,我将引导您设置并运行两个 Spring Boot 应用程序:一个简单的 “Hello, World” 应用程序。请注意,我在应用程序示例中使用的是 Spring Boot V1.5.2。推荐您使用 V1.5.2 或更高版本,但这些示例应适用于任何高于 1.5 的版本。

前提条件

要充分掌握教程内容,您应该能熟练使用 Java Development Kit V8 (JDK 8)。还需要熟悉 Eclipse IDE、Maven 和 Git。

要顺利学习本教程,请确保安装了以下软件:

A.JDK 8 for Windows, Mac, and Linux。

B.Eclipse IDE for Windows, Mac, and Linux。

C.Apache Maven for Windows, Mac, and Linux。

深入浅出:快速上手Spring Boot基础应用

深入介绍教程之前,我想简单介绍一下 Spring Boot。

Spring Boot 是什么?

Spring Boot 的目的是提供一组工具,以便快速构建容易配置的 Spring 应用程序。

问题:Spring 很难配置!

如果您编写过基于 Spring 的应用程序,就会知道只是完成 “Hello, World” 就需要大量配置工作。这不是一件坏事:Spring 是一个优雅的框架集合,需要小心协调配置才能正确工作。但这种优雅的代价是配置变得很复杂(别跟我提 XML)。

解决方案:Spring Boot

开始介绍 Spring Boot。Spring Boot 网站 对它的介绍比我的简介更为简洁:

"Spring Boot 使您能轻松地创建独立的、生产级的、基于 Spring 且能直接运行的应用程序。我们对 Spring 平台和第三方库有自己的看法,所以您从一开始只会遇到极少的麻烦。"

基本上讲,这意味着您只需极少的配置,就可以快速获得一个正常运行的 Spring 应用程序。这些极少的配置采用了注释的形式,所以没有 XML。

这一切听起来很不错,对吧?但 Spring Boot 到底是怎么工作的?

首先,它很有主见

Spring Boot 拥有观点。换句话说,Spring Boot 拥有合理的默认值,所以您可以使用这些常用值快速构建应用程序。

例如,Tomcat 是一个非常流行的 Web 容器。默认情况下,Spring Boot Web 应用程序使用了一个嵌入式 Tomcat 容器。

其次,它可以自定义

如果无法改变其想法,具有主见的框架就不是很好的框架。您可以根据自己的喜好轻松地自定义 Spring Boot 应用程序,无论是在进行初始配置时还是在开发周期的后期阶段。

例如,如果喜欢 Maven,可以轻松地在 POM 文件中更改 <dependency> 来替换 Spring Boot 默认值。教程后面会这么做。

开始使用 Spring Boot

Starter

starter 是 Spring Boot 的一个重要组成部分,用于限制您需要执行的手动配置依赖项数量。要想有效地使用 Spring Boot,您应该了解 starter。

starter 实际上是一组依赖项(比如 Maven POM),这些依赖项是 starter 所表示的应用程序类型所独有的。

所有 starter 都使用以下命名约定:spring-boot-starter-XYZ,其中 XYZ 是想要构建的应用程序类型。以下是一些流行的 Spring Boot starter:

A. spring-boot-starter-web 用于构建 RESTful Web 服务,它使用 Spring MVC 和 Tomcat 作为嵌入式应用程序容器。

B. spring-boot-starter-jersey 是 spring-boot-starter-web 的一个替代,它使用 Apache Jersey 而不是 Spring MVC。

C. spring-boot-starter-jdbc 用于建立 JDBC 连接池。它基于 Tomcat 的 JDBC 连接池实现。

D. 还列出了其他许多 starter。您可以访问该页面来了解每个 starter 的 POM 和依赖项。

自动配置

如果您允许的话,Spring Boot 会使用其 @EnableAutoConfiguration 注释自动配置您的应用程序。自动配置基于类路径中的 JAR 和定义 bean 的方式:

查看配置:使用 --debug 选项启动您的 Spring Boot 应用程序,然后将向控制台生成一个自动配置报告。

A. Spring Boot 使用您在 CLASSPATH 中指定的 JAR,形成一个有关如何配置某个自动行为的观点。例如,如果类路径中有 H2 数据库 JAR,而且您没有配置任何其他 DataSource bean,您的应用程序会自动配置一个内存型数据库。

B. Spring Boot 使用您定义 bean 的方式来确定如何自动配置自身。例如,如果您为 JPA bean 添加了 @Entity 注释,Spring Boot 会自动配置 JPA,这样您就不需要 persistence.xml 文件。

Spring Boot über jar

Spring Boot 旨在帮助开发人员创建能直接运行的应用程序。为实现该目的,它将应用程序及其依赖项包装在一个可执行 JAR 中。要运行您的应用程序,可以像这样启动 Java:

Spring Boot über JAR 不是一个新概念。因为 Java 没有提供加载嵌套式 JAR 的标准方式,所以开发人员多年来一直使用 等工具来构建 “shaded” JAR。shaded JAR 仅包含来自应用程序的所有依赖 JAR 的 .class 文件。但随着应用程序复杂性的增加和依赖项的增多,shaded JAR 可能遇到两个问题:

A. 名称冲突,不同 JAR 中的两个类采用了相同名称。

B. 依赖项版本问题,两个 JAR 使用同一个依赖项的不同版本。

Spring Boot 解决这些问题的方法是定义一种 ,其中的 JAR 本身嵌套在 über JAR 中。Spring 支持工具(例如 spring-boot-maven 插件)随后会构建这个可执行的 über JAR,使其符合该布局(不只是像shaded JAR 一样解包和重新打包 .class 文件)。运行这个可执行 JAR 时,Spring Boot 使用了一个特殊的类加载器来处理嵌套式 JAR 中的类。

编写 Hello, World!

现在您已准备好开始直接使用 Spring Boot 了。本节中的示例基于一个名为 HelloSpringBoot 的简单应用程序。您可以和我一起练习这个应用程序开发示例,但是,如果想立即开始使用应用程序代码,可以从 Github 它。

猜你喜欢

转载自blog.51cto.com/14254839/2368107
今日推荐