一步一步学 SpringBoot2(一)

第1章: 第一个 Spring Boot 项目

本章主要介绍学习 Spring Boot 之前的环境准备,包括如何一分钟快速搭建 Spring Boot 、 Spring Boot 文件目录的简单介绍以及 Maven Helper 插件的安装和使用等。

1.1 Spring Boot简单介绍

Spring Boot 是目前流行的微服务框架,倡导“约定优先与配置”,其设计目的是用来简化新 Spring 应用的初始化搭建以及开发过程。Spring Boot 提供了很多核心的功能,你如自动化配置、starter 简化 Maven 配置、内嵌 Servlet 容器、应用监控等功能,让我们可以快速构建企业级应用程序。

1.2 Spring Boot配置开发环境

本节将介绍如何安装JDK、IntelliJ IDEA 以及 Apache Maven。在开始学习 Spring Boot 之前,我们需要准备好开发环境,本课程主要以 Window 操作系统为例进行介绍。如果电脑中已经安装JDK、IntelliJ IDEA 或者 Apache Maven,可以跳过本节介绍。

1.2.1 安装 JDK

JDK(Java SE Development Kit) 建议使用 1.8 以上的版本,官方下载路https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。
软件下载完成之后,双击按装文件,出现安装界面,一路点击【下一步】按钮,即可完成安装,这里默认把JDK安装载路径:C:\Program Files\Java\jdk1.8.0_121下。

在这里插入图片描述
安装完成后,需要配置环境变量JAVA_HOME,步骤如下:
步骤01:在电脑桌面上右击【此电脑】>【属性】>【高级系统设置】>【环境变量】>【系统变量(S)】>【新建】,出现新建环境变量窗口。在这里插入图片描述
步骤02:在【变量名】和【变量值】中分别填入JAVA_HOME和C:\Program Files\Java\jdk1.8.0_121,单击【确定】按钮。
步骤03:JAVA_HOME配置好之后,将%JAVA_HOME%\bin加入【系统变量】的path中。完成后,打开命令行窗口,输入命令 java -version。出现如图所示的提示,即表示安装成功。在这里插入图片描述
温馨提示:JDK安装路径最好不要出现中文,否则会出现意想不到的结果。

1.2.2 安装 IntelliJ IDEA

在安装IntelliJ IDEA 的官方网站(https://www.jetbrains.com/idea/)可以免费下载IDEA。下载IDEA后,运行安装程序,按提示安装即可。 我使用的是IntelliJ IDEA 最新版本,当然大家也可以使用其他版本的IDEA,只要版本不要过低即可。安装成功之后,打开软件,如图所示:在这里插入图片描述

1.2.3 安装 Apache Maven

Apache Maven 是目前流行的项目管理和构建自动化工具,虽然IDEA已经包含Maven插件,但还是希望大家在工作中能够安装自己的Maven插件,方便以后项目配置。大家可以通过Maven的官方网站(https://maven.apache.org/)下载最新版的Maven,我使用的Maven版本为apache-maven-3.6.3。
下载完成后解压即可,例如解压到D盘,然后将 Maven 的安装路径D:\apache-maven-3.6.3\bin加入Windows的环境变量path中。安装完成后,在命令行窗口执行命令:mvn -v,如果输出下图,表示Maven安装成功。
在这里插入图片描述
接下来,我们要在IntelliJ IDEA下配置Maven,具体步骤如下:
步骤01:在Maven安装目录(D:\apache-maven-3.6.3)下新建文件夹repository,用来作为本地仓库。
步骤02:在IntelliJ IDEA 界面中选择【File】>【Setting】,在出现的窗口中找到Maven选项,分别把【Maven home directory】【User settings file】【Local repository】设置为我们自己的Maven的相关目录,如图所示。在这里插入图片描述

步骤03:设置完成后,单击【Apply】>【OK】。到此,Maven在IntelliJ IDEA 的配置完成。

这里需要注意的是,之所以把Maven默认仓库(C:${user.home}.m2\reposiitory)的路径改为我们自己的目录(D:\programfiles\apache-maven-3.6.3\reposiitory),是因为reposiitory仓库到时候会存放很多jar包,放在C盘影响电脑的性能。

1.3 一分钟快速搭建 Spring Boot 项目

1.3.1 使用 Spring Initializr 新建项目

使用 IntelliJ IDEA 创建 Spring Boot 项目有多种方式,比如Maven 和 Spring Initializr。这里只介绍 Spring Initializr 这种方式,因为这种方式不但可以生成完整的目录结构,还可以生成一个默认的主程序,节省时间。我们的目的是掌握Spring Boot相关的知识,而不是学一堆花样。具体步骤如下:
步骤01:在IntelliJ IDEA 界面中,单击【File】>【New】>【Product】,在弹出的窗口中选择【Spring Initializr】选项,在【Product SDK】下拉框中选择JDK的安装路径,如果没有,就新建一个,单击【Next】按钮。如图所示:
在这里插入图片描述

步骤02:默认单击【Next】按钮,如图所示:在这里插入图片描述
步骤03:默认版本号【2.3.3】,勾选【Spring Web】,然后单击【Next】按钮,如图所示:在这里插入图片描述
步骤04:填写项目名称,其它选项默认即可,单击【Finish】按钮,至此,一个完整的SpringBoot 创建完成,如图所示:在这里插入图片描述

步骤05:刷新依赖窗口,如图所示:在这里插入图片描述
温馨提示:下载SpringBoot依赖包是一个相对漫长的过程,可以去做点别的事情。

1.3.2 测试

Spring Boot 项目创建完成之后,找到入口类DemoApplication 中的 main 方法并运行。当看到如图所示的内容,表示项目启动成功。同时还可以看出项目启动的端口(8080)以及启动时间。在这里插入图片描述
在这里插入图片描述

1.4 Spring Boot 文件目录介绍

1.4.1 工程目录

Spring Boot 的工程目录如图:在这里插入图片描述

  • /src/main/java:目录下放置所有的Java文件(源代码文件)。
  • /src/main/resources:用于存放所有的资源文件,包括静态资源文件、配置文件、页面文件等。
  • /src/main/resources/static:用于存放各类静态资源。
  • /src/main/resources/templates:用于存放模板文件,如Thymeleaf(这个技术不懂不用着急,以后会介绍)模板文件。
  • /src/main/resources/application.properties:配置文件,这个文件非常重要。Spring Boot 默认支持两种配置文件类型,即.properties 和 .yml。
  • /src/test/java:放置单元测试类Java代码。
  • /target:放置编译后的.class文件、配置文件等等。

Spring Boot 将很多配置文件进行了统一管理,且配置了默认值。Spring Boot 会自动在/src/main/resources目录下找application.properties或者application.yml配置文件。找到后将运用此配置,否则使用默认配置。这两种类型的配置文件有其一即可,也可以两个并存。两个区别如下:

application.properties:
server.port = 8080
application.yml:
server:
    port:8080

注意事项:properties 配置文件得优先级高于.yml。在.properties文件中配置了server.pory = 8080,同时在.yml中配置了server.port = 8090。Spring Boot 将使用 .properties 中的8080端口。

1.4.2 入口类

入口类的类名是根据项目名称生成的的,我们的项目名称是demo,故入口类的类名称+Application,即DemoApplication.java。入口类的代码很简单,代码如下:


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

  • @SpringBootApplication:是一个组合注解,包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是过于烦琐。因此,用@SpringBootApplication进行简化。
  • @SpringApplication.run:应用程序开始运行的方法。

温馨提示:入口类需要放置在包的最外层,以便能够扫描到所有子包中的类。

1.4.3 测试类

Spring Boot 的测试类主要放置在/src/test/java目录下。项目创建完成后,Spring Boot 会自动为我们生成测试类DemoApplicationTests.java。其类名也是根据项目名称+ApplicationTests生成的。测试类的代码如下:


import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {

    @Test
    void contextLoads() {
    }

}

  • @RunWith(SpringRunner.class):@RunWith(Parameterized.class)是参数化运行器,配合@Parameters 使用 Junit 的参数化功能。查源代码可知,SpringRunner 类继承自SpringJUnit4ClassRunner类,此处表明使用SpringJUnit4ClassRunner执行器,此执行器集成了Spring的一些功能。如果只是简单的Junit单元测试,该注解 可以去掉。
  • @SpringBootTest:此注解能够测试我们的SpringApplication,所以基本所有配置都会通过入口类加载,而该注解可以引用入口类的配置。
  • @Test:Junnit单元测试的注解,在方法上,注解表示一个测试方法。

当我们右击执行DemoApplicationTests.java中的contextLoads方法的时候,大家可以看到控制台打印的信息何执行入口类中的SpringApplication.run()方法,打印的信息是一致的,由此便知,@SpringBootTest引入了入口类的配置。
在这里插入图片描述

1.4.4 pom文件

Spring Boot 项目下的pom.xml文件主要用来存放依赖信息。具体代码如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository(从存储库中查找父类) -->
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
   </dependencies>
   ....省略一些....
   <build>
       <plugins>
     <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
       </plugins>
   </build>
  • spring-boot-starter-parent:是一个特殊的starter(起动器),用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
  • spring-boot-starter-web:只要将其加入项目的Maven依赖中,我们就得到了一个可执行的Web应用。该依赖中包含许多常用的依赖包,比如spring-web、spring-webmv等。我们不需要做任何Web配置,便能获得相关Web服务。
  • spring-boot-starter-rsst:这个依赖和测试相关,只要引入它,就会把所有与测试相关的包全部引入。
  • spring-boot-maven-plugin:这是一个maven插件,能够以Maven的方式为应用提供给Spring Boot的支持,即为Spring Boot 应用提供了执行Maven操作的可能。能够将Spring Boot 应用打包为可执行的 jar或war文件。

1.5 Maven Helper 插件的安装和使用

1.5.1 Maven Helper 插件介绍

Maven Helper 是一款可以方便查看Maven依赖树的插件,可以在IntelliJ IDEA上安装使用它。Maven Helper 支持多种视图来查看Maven依赖,同时可以帮助我们分析pom文件中的依赖是否发生冲突,方便快速定位错误。

1.5.2 Maven Helper 插件的安装

安装Maven Helper插件很简单,在菜单栏选择【File】>【Settings】>【Plugins】,在搜索框中输入【Maven Helper】,然后单击【Install】安装即可。安装完成之后,重启Intellij IDEA即可使用。(假如没有搜索到【Maven Helper】,Intellij插件之MavenHelper,安装教程

1.5.3 Maven Helper 插件的使用

插入成功之后,如图所示,打开pom文件,除了Text视图外,多了一个Dependency Analiyzer视图。
在这里插入图片描述

  • All Dependencies as List:以列表方式显示所有依赖包。
  • All Depnedencies as Tree:以树形方式显示所有依赖包。
  • Conflicts:查看所有有冲突的依赖包,如果存在冲突,就会显示红色,同时会显示在右侧视图。我们可以单击有冲突的包,右击【Exclude】来排除冲突,通右击【Jump To Source[F2]】可以跳转到源代码。

猜你喜欢

转载自blog.csdn.net/qq_43791614/article/details/108261767