01.07 Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

在本文中,主要内容包括什么是Spring Boot,优点,主要功能以及使用Spring Boot创建一个简单的应用程序。

Spring Boot是什么?

​ Spring Boot是对Spring Framework的增强和扩展,它极大的消除了使用Spring Framework时所需的大量样板代码的配置,与此同时,Spring Boot提供的很多Starter能让开发人员更快的完成系统的开发。

Spring Boot主要的优势

相比于Spring Framework,使用Spring Boot能为开发者带来以下优势:

  • 为使用Spring Framework带来更好的体验
  • 开箱即用,Spring Boot提供了大量的默认配置,根据需求,开发者可以很轻松覆盖原有配置
  • 提供了一些列优秀的功能插件,如嵌入式服务器,安全检查,系统指标,运行状况检查以及外部化配置
  • 推荐基于Java代码的配置方式,可以很少或完全不使用XML配置应用

Spring Boot的核心功能

与Spring Framework相比较,下面列举Spring Boot的一些核心功能,Spring Boot的功能不局限于下面所列举:

  1. Spring Boot Starters
  2. Spring Boot AutoConfiguration
  3. 优雅的配置管理
  4. Spring Boot Actuator
  5. 易于使用的嵌入式Servlet容器

接下来,将详细说明Spring Boot的核心功能。

1. Spring Boot Starters

​ Spring Boot提供了许多开箱即用的Starter模块,例如Spring MVC,JPA,MySQL,Spring Security,Solor,Hibernate,Freemarker等等。这些Starter已经预先配置好了最常用的依赖库,因此你不必像使用Spring那样去考虑各依赖库之间的版本兼容问题。

​ 如果你希望在项目中使用Hibernate框架且基于JPA实现,你只需要在pom文件中加入spring-boot-starter-data-jpa即可,Spring Boot会自动加载所需要的依赖库。

2. Spring Boot AutoConfiguration

​ Spring Boot另一个革命性的功能是自动配置,有了自动配置功能,你可以摒弃之前使用XML手动配置应用的方式,通过几行代码,即可完成应用系统复杂的配置工作。

​ Spring Boot会自动根据某些特定的条件自动完成Bean的注册工作,下面是触发Spring Boot完成自动注入的一些条件:

  • 当类路径下存在特定的且可用的类时
  • 当Spring Bean存在/不存在时
  • 当存在特定的系统属性时
  • 当缺少配置文件时

例如,当你的项目中存在spring-mvc的依赖库时,Spring Boot会猜测你将构建一个基于Spring MVC的Web应用程序,在你未编写任何代码前,Spring Boot会尝试注册一个默认的DispatcherServlet。如果你的类路径下包含得有任何嵌入式数据库驱动程序(H2或HSQL),在未显示配置DataSource前,Spring Boot会自动配置一个DataSource得Bean。

3. 优雅的配置管理

​ Spring Boot支持使用@PropertySource注解完成外部化可配置属性。使用Spring Boot的配置键值对,可以将键值对与Bean属性进行绑定,另外,Spring Boot还提供为不同环境提供针对性的配置文件,你只需要简单的几行代码即可完成配置管理。

4. Spring Boot Actuator

​ 很多时候,我们都需要去收集在生产环境中运行的应用程序的诸多性能参数,而Spring Boot Actuator已经为我们提供了类似的许多功能,我们无需编写大量的代码,只需简单的一些配置,便可监控我们的应用程序,收集指标数据,了解URL请求状况等。例如,我们可以通过引入Spring Boot Actuator而获得如下的一些便利:

  • 获取应用程序中所有Spring Bean的详细信息
  • 获取应用程序运行状况信息
  • 获取HTTP跟踪信息
  • 获取应用程序日志信息
  • 获取应用程序中的计划任务信息
  • 获取应用程序中的路径映射列表信息(Web应用)

5. 易于使用的嵌入式Servlet容器

​ 以往,我们在构建Web应用程序时,需要手动创建WAR类型的程序包,然后将其部署到外部服务器(例如Tomcat)上才可以运行应用程序,现在,当你使用Spring Boot时,你可以很方便的创建JAR类型的程序包,且该类型的程序包已经内嵌了Servlet容器,你可以在不依赖于外部服务器的情况下运行Web应用程序。

6. 系统要求

​ Spring Boot 2.2.2.RELEASE最低要求Java 8,同时也支持Java 13。此外,还需要Spring Framework 5.2.2.RELEASE或更高的版本。

6.1 构建工具本版

在开始使用Spring Boot 2.2.2之前,你应该先检查本地的构建工具是否满足以下的配置要求:


Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

SpringBoot 2.2.2构建工具版本列表


6.2 Servlet容器

Spring Boot 2.2.2支持以下的嵌入式Servlet容器:


Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

Spring Boot 2.2.2内嵌容器列表


除此之外,你还可以将Spring Boot应用程序打包为WAR包,部署到支持Servlet 3.1及以上版本的外部容器中。

7. 为什么使用Spring Boot?

与直接使用Spring相比,使用Spring Boot你将如下的一些优势(不局限于列举范围):

  1. 开发基于Spring的应用变得更简单容易
  2. 开箱即用的特性减少的开发时间,提高了开发效率
  3. Spring Boot避免了大量的样板代码和XML配置
  4. 能够很轻松的与其他Spring生态系统集成(例如Spring JDBC,Spring ORM,Spring Data,Spring Security)
  5. Spring Boot的自动注入能够帮助开发人员减少工作量
  6. Spring Boot提供了嵌入式的Servlet容器,方便开发人员对应用进行测试

8.编写第一个Spring Boot应用程序

​ 本小节将基于Java 8 和Maven 3.0+构建一个简单的Spring Boot Web应用程序,通过浏览器访问http://localhost:8080 ,在页面中输出”Hello Spring Boot“语句。

​ 在开始编写应用程序之前,先检查本地环境是否满足开发要求。首先,打开操作系统终端,检查Java的版本信息,以Microsoft Windows 10 为例:

Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

检查JDK版本信息

然后,在终端输入mvn -v检查Maven的版本信息

Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

检查Maven版本信息

8.1 创建POM

首先,我们需要创建一个工程目录spring-boot-firstapp,然后在其目录下创建一个Maven pom.xml文件,该文件用于管理项目的依赖。然后,使用你喜欢的编辑器打开该文件并写入如下的内容:

<code>
<project> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0/<modelversion>
<parent>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-parent/<artifactid>
<version>2.2.2.RELEASE/<version>
<relativepath>
/<parent>
<groupid>com.ramostear/<groupid>
<artifactid>spring-boot-firstapp/<artifactid>
<version>0.0.1-SNAPSHOT/<version>
<name>spring-boot-firstapp/<name>
<description>Demo project for Spring Boot/<description>

<properties>
<java.version>1.8/<java.version>
/<properties>

<dependencies>
<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter/<artifactid>
/<dependency>
/<dependencies>

<build>
<plugins>
<plugin>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-maven-plugin/<artifactid>
/<plugin>
/<plugins>
/<build>


/<project>
/<code>

最后,打开你的操作系统终端,导航到spring-boot-firstapp目录下,执行mvn package命令进行测试,执行此命令后,spring-boot-firstapp目录下会生成多个文件夹:

<code>spring-boot-firstapp
├─src
├─main
│ ├─java
│ │ └─com
│ │ └─ramostear
│ │ └─springbootfirstapp
│ │ SpringBootFirstappApplication.java
│ │
│ └─resources
│ application.properties

└─test
└─java
└─com
└─ramostear
└─springbootfirstapp
└─SpringBootFirstappApplicationTests.java
/<code>

8.2 添加Web依赖

由于我们要创建一个Web应用程序,因此需要向pom文件中加入相关的web依赖。现在我们使用spring boot构建web应用程序,只需在pom文件的dependencies节点中加入如下的依赖即可:

<code><dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-web/<artifactid>
/<dependency>
/<code>

在这里,你会发现我们并没有填写spring-boot-starter-web依赖库的版本号,该依赖库的版本将由spring-boot-starter-parent统一管理。

8.3 编写代码

现在,我们要创建一个Java文件,完成向浏览器页面输入”Hello Spring Boot“的功能。在src/main/java/com/ramostear/springbootfirstapp目录下创建一个名为HelloSpringBoot.java的文件,并用你喜欢的文本编辑器打开文件并写入以下代码:

<code>package com.ramostear.springbootfirstapp;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @ClassName HelloSpringBoot
* @Description TODO
* @Author ramostear
* @Date 2020/1/7 0007 15:19
* @Version 1.0
**/
@RestController
public class HelloSpringBoot {

@GetMapping("/")
public String sayHello(){
return "Hello Spring Boot";
}
}
/<code>

RestController注解会将字符串”Hello Spring Boot“直接返回到页面,而不是返回一个视图;GetMapping时RequestMapping的一种简写。

8.4 运行示例

​ 由于使用了spring-boot-starter-parent依赖,因此可以在终端使用mvn spring-boot:run命令来运行本次示例,命令执行成功后,你可以在控制台查看到以下的输出:

<code>mvn spring-boot:run
. ____ _ __ _ _

/\\\\ / ___'_ __ _ _(_)_ __ __ _ \\ \\ \\ \\
( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\
\\\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.2.RELEASE)

...

2020-01-07 15:26:04.868 INFO 3100 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
...
/<code>

现在,你可以打开浏览器并输入http://localhost:8080,你可以在页面上观察到如下的信息:

Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)

第一个Spring Boot应用程序



分享到:


相關文章: