乐趣区

关于java:Spring-Boot-2x-基础教程快速入门

一、简介

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是用来简化新 Spring 利用的初始搭建以及开发过程。该框架应用了特定的形式来进行配置,从而使开发人员不再须要定义样板化的配置。

Spring Boot 的长处疾速开发,特地适宜构建微服务零碎,另外给咱们封装了各种常常应用的套件,比方 mybatis、hibernate、redis、mongodb 等。

二、疾速入门

本文咱们将学习如何疾速创立一个 Spring Boot 利用。通过这个列子对 Spring Boot 有一个 初步的理解,并体验其构造简略,疾速开发的个性。

三、创立我的项目

Spring 官网提供了十分不便的工具 Spring Initalizr 来帮忙咱们创立 Spring Boot 利用。

1. 应用 Spring Initalizr 页面创立

第一步:拜访 Spring Initializr:https://start.spring.io/

  • Project:应用什么构建工具,Maven 还是 Gradle;
  • Language:应用什么编程语言,Java
  • Spring Boot:选用的 Spring Boot 版本;这里将应用以后最新的 2.6.2 版本。
  • Project Metadata:我的项目的元数据;其实就是 Maven 我的项目的根本元素
  • Dependencies:抉择要退出的 Spring Boot 组件;本文将实现一个 Http 接口,所以能够抉择 Web 组件,只须要输出 Web,页面会主动联想显示匹配的可选组件:

第二步 :点击 “Generate Project” 按钮生成我的项目;此时浏览器会下载一个与下面Artifact 名称一样的压缩包。

第三步:解压我的项目包,并用编译器以 Maven 我的项目导入,以 IntelliJ IDEA 为例:

  • 抉择解压后的我的项目文件夹,点击 OK
  • 点击:Import project from external model,并抉择 Maven,点击 Next 到底为止。
  • 若你的环境有多个版本的 JDK,留神到抉择 Java SDK 的时候请抉择 Java 8(具体依据你在第一步中抉择的 Java 版本为准)

2. 应用 IntelliJ IDEA 创立

如果是应用 IntelliJ IDEA 来写 Java 程序的话,那么还能够间接在编译器中创立 Spring Boot 利用。

第一步 :菜单栏中抉择:File => New => Project..,咱们能够看到如下图所示的创立性能窗口。

其中 Initial Service Url 指向的地址就是 Spring 官网提供的 Spring Initializr 工具地址,所以这里创立的工程实际上也是基于它的 Web 工具来实现的。

第二步 :点击 Next,期待片刻后,咱们能够看到如下图所示的工程信息窗口:

其实内容就跟咱们用 Web 版的 Spring Initializr 是截然不同的,跟之前在页面上一样填写即可。

第三步 :持续点击 Next,进入抉择 Spring Boot 版本和依赖治理的窗口:

第四步:点击 Next,进入最初对于工程物理存储的一些细节。最初,点击 Finish 就能实现工程的构建了。

四、我的项目构造


通过下面步骤实现了根底我的项目的创立。如上图所示,Spring Boot 的根底构造共三个文件

  • src/main/java下的程序入口:Chapter1Application
  • src/main/resources下的配置文件:application.properties
  • src/test/下的测试入口:Chapter1ApplicationTests

生成的 Chapter1ApplicationChapter1ApplicationTests类都能够间接运行来启动以后创立的我的项目,因为目前该我的项目未配合任何数据拜访或 Web 模块,程序会在加载完 Spring 之后完结运行。

五、我的项目依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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.6.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.chapter</groupId>
    <artifactId>chapter1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>chapter1</name>
    <description>SpringBoot 第一章 </description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <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>

</project>

关上pom.xml,一起来看看 Spring Boot 我的项目的依赖:

如上所示,次要有四个局部:

  • 我的项目元数据:创立时候输出的 Project Metadata 局部,也就是 Maven 我的项目的根本元素,包含:groupId、artifactId、version、name、description 等
  • parent:继承 spring-boot-starter-parent 的依赖治理,管制版本与打包等内容
  • dependencies:我的项目具体依赖,这里蕴含了 spring-boot-starter-web 用于实现 HTTP 接口(该依赖中蕴含了 Spring MVC);spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的应用咱们将在前面的教程中逐渐开展。
  • build:构建配置局部。默认应用了 spring-boot-maven-plugin(Spring Boot Maven 插件),配合spring-boot-starter-parent 就能够把 Spring Boot 利用打包成 JAR 来间接运行。

六、编写一个 HTTP 接口

  • 创立 TestController 类,内容如下:
package com.chapter.chapter1;

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

@RestController
public class TestController {@RequestMapping("/test")
    public String index() {return "Hello World";}
}

@RestController:相当于 @Controller+@ResponseBody 两个注解的联合,返回 json 数据不须要在办法后面加 @ResponseBody 注解了

至此已实现指标,通过 Maven 构建了一个空白 Spring Boot 我的项目,再通过引入 web 模块实现了一个简略的申请解决。

  • 启动主程序,应用 PostMan 等工具发动申请:http://localhost:8080/test,能够看到页面返回:Hello World

七、编写单元测试用例

关上的 src/test/ 下的测试入口 Chapter1ApplicationTests 类。上面编写一个简略的单元测试来模仿 http 申请,具体如下:

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;



@SpringBootTest
class Chapter1ApplicationTests {
    private MockMvc mvc;

    @BeforeEach
    public void setUp() {mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();}

    @Test
    public void getHello() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/test").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }

}

应用 MockServletContext 来构建一个空的 WebApplicationContext,这样咱们创立的TestController 就能够在 @BeforeEach 函数中创立并传递到 MockMvcBuilders.standaloneSetup() 函数中。

留神引入上面内容,让 status、content、equalTo 函数可用

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

至此已实现指标,通过 Maven 构建了一个空白 Spring Boot 我的项目,再通过引入 web 模块实现了一个简略的申请解决。

退出移动版