Spring Boot快速入门

  • 一、概述
  • 二、快速入门(实例操作)
  • 三、IDEA x Spring Initializr(快速生成Spring Boot)


一、概述

使用 Spring Boot 可以很容易地创建出能直接运行的独立的、生产级别的基于 Spring 的应用。 我们对 Spring 平台和第三方类库有自己的考虑,因此您可以从最基本的开始。大多数 Spring Boot 应用只需要很少的 Spring 配置

Spring主要目标是:

  • 为所有 Spring Boot 开发提供一个更快、更全面的入门体验。
  • 坚持自我虽好,但当需求出现偏离,您需要能迅速摆脱出来。
  • 提供大量非功能性特性相关项目(例如:内嵌服务器、安全、指标、健康检查、外部配置)。
  • 绝对没有代码生成,也不要求 XML 配置。

二、快速入门(实例操作)

本小节,我们搭建 Spring Boot 示例项目,并在其中使用 SpringMVC 来提供一个简单的 HTTP API。

在开始搭建示例项目之前,胖友需要先做好如下准备:

  • JDK8+
    友情提示:Spring Boot 2.X 版本,需要最低的 Java 版本是 8。
  • Maven
    本文希望屁友对 Maven 构建工具有过一定的了解。
  • IDEA
    宇宙最强 Java 开发者工具,没有之一。

2.1 创建项目

🕐打开 IDEA,点击菜单 File -> New -> Project… 来创建项目。如下图所示:

boot java 运行spring java spring boot开发_spring


🕑选择 Maven 类型,点击「Next」按钮,进入下一步。输入 Maven 的 GroupId、ArtifactId,如下图所示:

boot java 运行spring java spring boot开发_maven_02

🕒点击「Finish」按钮,完成 Maven 项目的创建。此时项目如下图所示:

boot java 运行spring java spring boot开发_java_03


最后直接展示结果如下图所示:

boot java 运行spring java spring boot开发_java_04


2.2 引入依赖

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Spring Boot</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 从 Spring Boot 继承默认配置 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <!-- 实现对 SpringMVC 的自动化配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

2.3 配置文件

在 Spring Boot 项目中,约定通过 application.yaml 配置文件,进行 Spring Boot 自动配置的 Bean 的自定义。

在 resource 目录下,创建 application.yaml 配置文件。内容如下:

server:
  port: 8080 # 内嵌的 Tomcat 端口号,默认为 8080
  • 通过 server.port 配置项,设置稍后启动的内嵌 Tomcat 端口为 8080 端口。

2.4 DemoController

创建 DemoController 类,提供一个简单的 HTTP API。代码如下:

package com.boot.demo1.controller;

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

@RestController
@RequestMapping("/demo")
public class DemoController {

    @RequestMapping("/ehto")
    public String DemoTest(){
        return "你好呀";
    }
}
  • 标准的 SpringMVC 使用示例,没有什么特别哈。

2.5 Application(启动类)

创建 Application 类,提供 Spring Boot 应用的启动类。代码如下:

@SpringBootApplication
public class Application {

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

}
  • 在类上,添加 @SpringBootApplication 注解,声明是一个 Spring Boot 应用。通过该注解,可以带来
    Spring Boot 自动配置等等功能。

2.6 测试结果

🕐 执行 Application#main(String[] args) 方法,启动示例项目。

这里我们会发现,我们无需在部署 Web 项目到外部的 Tomcat 中,而是直接通过 Application#main(String[] args) 方法,就可以直接启动,非常方便。完全符合 Spring Boot 文档对自己的介绍:

使用 Spring Boot 可以很容易地创建出能直接运行的独立的、生产级别的基于 Spring 的应用。

🕑此时,我们可以看到 IDEA 控制台输出 Spring Boot 启动日志如下:

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

// 启动 Java 进程使用的 PID 进程号
2020-02-08 15:38:25.724  INFO 10645 --- [           main] cn.iocoder.demo01.Application            : Starting Application on MacBook-Pro-8 with PID 10645 (/Users/yunai/Java/demo01/target/classes started by yunai in /Users/yunai/Java/demo01)
// Spring Boot Profile 机制,暂时可以忽略
2020-02-08 15:38:25.727  INFO 10645 --- [           main] cn.iocoder.demo01.Application            : No active profile set, falling back to default profiles: default
// 内嵌 Tomcat 启动
2020-02-08 15:38:26.503  INFO 10645 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-02-08 15:38:26.510  INFO 10645 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-02-08 15:38:26.510  INFO 10645 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.29]
2020-02-08 15:38:26.561  INFO 10645 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-02-08 15:38:26.561  INFO 10645 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 799 ms
2020-02-08 15:38:26.693  INFO 10645 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-02-08 15:38:26.839  INFO 10645 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-02-08 15:38:26.842  INFO 10645 --- [           main] cn.iocoder.demo01.Application            : Started Application in 1.396 seconds (JVM running for 1.955)
// SpringMVC DispatcherServlet 初始化
2020-02-08 15:38:44.992  INFO 10645 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-02-08 15:38:44.992  INFO 10645 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-02-08 15:38:44.996  INFO 10645 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 4 ms
// ... 暂时可以忽略
2020-02-08 15:39:37.113  INFO 10645 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
注意,以 // 开头的每一行,是艿艿添加的注释哟,胖友仔细看看。
有木有发现,Logger 日志组件,Spring Boot 都已经帮我们自动配置好啦。是不是很舒服~

🕒使用浏览器,访问 http://127.0.0.1:8080/demo/echo 接口,返回结果为 “echo”。

  • 这说明,SpringMVC 框架,也被 Spring Boot 自动配置完成。同时,使用的是内嵌的 Tomcat 服务器。

三、IDEA x Spring Initializr(快速生成Spring Boot)

IDEA 内置了 Spring Boot 插件,提供了对 Spring Initializr 集成。

  • Spring Boot / Spring Initializr project wizard.

下面,我们来使用该插件,创建一个 Spring Boot 项目。

🕐 打开 IDEA,点击菜单 File -> New -> Project…Next 来创建项目。如下图所示:

boot java 运行spring java spring boot开发_maven_05


🕑选择 Spring Initializr 类型,点击「Next」按钮,进入下一步。输入 Maven 的 GroupId、ArtifactId,如下图所示:

boot java 运行spring java spring boot开发_spring_06


🕒点击「Next」按钮,选择需要的依赖,这里暂时我们只需要 Web 依赖。如下图所示:

boot java 运行spring java spring boot开发_boot java 运行spring_07


🕓点击「Next」按钮,之后点击「Finish」按钮,完成 Maven 项目的创建。此时项目如下图所示:

boot java 运行spring java spring boot开发_maven_08