本文是spring boot的新手入门教程(一),目标是能让人快速简单上手和了解服务端的简单Web开发。
通过本文,可以学习使用IDEA构建一个Spring boot应用,实现经典的”Hello World!”

参考资料:

前置条件

  1. 安装Java开发套件JDK

    • 使用AdoptOpenJDK:Spring推荐
    • 使用Oracle JDK:
        2019年4月16日当天,Oracle发布了Oracle JDK的8u211和8u212两个版本(属于JDK8系列),并从这两个版本开始将JDK的授权许可从BCL换成了OTN!也就是从这两个版本开始商用收费了!
        所以Oracle JDK的最后两个免费版本号为8u201和8u202,并且一般情况下,我们通常使用奇数版本,即8u201(官方下载地址)。
        奇数偶数版本差异说明见:官方奇偶数版本说明
    • 阿里巴巴Dragonwell
    • 亚马逊corretto
    • 华为毕昇JDK
  2. 安装集成开发环境

    • IntelliJ IDEA:选择下载IntelliJ IDEA Community Edition
    • Eclipse:选择下载Eclipse IDE for Enterprise Java Developers

JDK安装

  1. 下载JDK 8u201
  2. 安装JDK
  3. 环境变量配置
    1. 新增环境变量 JAVA_HOME ,值为上面安装的JDK所在目录,例如我的:D:\Program Files\Java\jdk1.8.0_201
    2. 新增环境变量 CLASSPATH,值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
    3. 在系统变量中找到名为 PATH 的变量编辑,在后面新增 %JAVA_HOME%\bin; ,(注意原来Path的变量值末尾有没有 ; 号,如果没有,先输入 ; 号再输入上面的代码)。
  4. 测试是否安装成功
    1. 打开cmd命令框,输入 java -version 指令,回车运行,正确提示版本等信息,则说明环境配置正确。

IDEA安装

  1. 下载并安装IntelliJ IDEA Community Edition
  2. 打开IDEA,安装插件 spring assistant
      Spring assistant 插件安装

Spring Boot快速开始

  本章节实现一个应用,浏览器请求本地URL:http://localhost:8080/hello,
  返回

1
Hello World!

  1. 新建工程,选择 spring assistant,下一步
    新建spring工程
  2. 默认属性中,修改Java version, 选择 8,我们当前生产环境使用的jdk版本,下一步
    修改java版本
  3. 选择类型WEB-->Spring Web
    选择创建WEB
  4. 在包 com.example.demo.controller 下创建类 HelloController
    类代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package com.example.demo.controller;

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

    @RestController
    public class HelloController {
    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    return String.format("Hello %s!", name);
    }
    }
  5. 刷新maven依赖
    刷新maven依赖
  6. Debug调试运行应用,注意看控制台输出日志,为tomcat容器启动,默认端口号8080
    debug调试运行Spring boot
  7. 启动好后,本地浏览器访问URL:http://localhost:8080/hello
    访问hello请求

创建一个RESTFUL请求

  本章节实现一个GET请求,浏览器请求本地URL:http://localhost:8080/greeting,
  返回一个json对象

1
{"id":1,"content":"Hello, World!"}

  你可以定制name参数,使得返回内容根据name变化,例如,请求URL:http://localhost:8080/greeting?name=User,
  返回一个json对象
1
{"id":1,"content":"Hello, User!"}

  1. 停止前面启动的应用
    停止应用
  2. 在包com.example.demo.model下,新建一个Java Bean对象Greeting
    新建Greeting
    类代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package com.example.demo.model;

    public class Greeting {

    private final long id;
    private final String content;

    public Greeting(long id, String content) {
    this.id = id;
    this.content = content;
    }

    public long getId() {
    return id;
    }

    public String getContent() {
    return content;
    }
    }
  3. 修改前面的Controller类HelloController,新增响应/greeting请求
    修改HelloController
    修改后类代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package com.example.demo.controller;

    import com.example.demo.model.Greeting;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import java.util.concurrent.atomic.AtomicLong;

    @RestController
    public class HelloController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @GetMapping("/hello")
    public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    return String.format("Hello %s!", name);
    }

    @GetMapping("/greeting")
    public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
    return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }
    }
  4. 重启启动应用调试,如上一章节的6,7
  5. 本地浏览器访问URL:http://localhost:8080/greeting?name=Linyuliang,每次访问id返回递增,content内容根据传入的name参数变更
    浏览器请求Greeting