Spring

SpringBoot – 详细入门教程(创建、运行项目,REST服务样例)

Spring BootSpring Cloud 已成为当前最流行的微服务框架。本文通过样例演示如何搭建并运行一个简单的 Spring Boot 项目。在开发之前,首先确认我们的电脑上已经有以下环境:

  • JDK8
  • Maven3.0+
  • Intellij IDEA

一、创建项目


1,在线创建项目

(1)在线创建是 Spring Boot 官方提供的一种创建方式,在浏览器中访问如下网址:

(2)在打开的页面中我们可以选择项目的构建工具是 Maven 还是 Gradle、语言是 Java 还是其它、要使用的 Spring Boot 版本号、项目的组织 Id(包名)、模块名称以及项目的依赖。因为我要创建一个 SpringBoot 项目,所以项目依赖这块我们输入 Web 回车后进行添加。

(3)所有信息填写完毕后,点击下方的“Generate Project”按钮即可将生成的模版下载到本地,解压后使用 IDE 打开即可开始项目的开发了。

2,使用 Intellij IDEA 创建

(1)创建项目时选择 Spring Initializr

(2)接着输入项目的基本信息,包括组织 Id、模块名称、项目构建类型、最终生成包的类型、Java 的版本、开发语言、项目版本号、项目描述以及项目的包。

(3)接着选择项目所需要的依赖,之后 Intellij IDEA 会自动把选中的依赖添加到项目的 pom.xml 文件中。因为我要创建一个 SpringBoot 项目,所以这里我们添加了个 Web 依赖。

(4)最后一步选择好创建路径,一个可运行的 Spring Boot 项目就创建成功了。

二、运行项目


有三种不同的方式启动项目,下面分别进行介绍。

1,使用 Maven 命令启动

(1)打开终端进入项目文件夹,执行如下 mvn 命令启动项目:

mvn spring-boot:run

(2)启动完毕后终端会显示成功信息。

(3)使用浏览器访问 http://localhost:8080/ 则可显示项目主页。

2,直接运行 main 方法

(1)在 Intellij IDEA 中右键点击 App 类,然后点击 run 按钮即可启动项目。

(2)项目启动后控制台中可以看到相关的启动信息。

3,打包启动

Spring Boot 应用也可以直接打成 jar 包运行。在生产环境中,常常通过这样的方式来运行一个 Spring Boot 应用。

(1)打开终端进入项目文件夹,执行如下 mvn 命令进行打包。

mvn package

(2)如果使用的是 Intellij IDEA,我们还可以点击界面右侧的 Maven -> Lifecycle -> package 进行打包。

(3)上面打包方式的前提是项目使用了 spring-boot-starter-parent 作为 parent,不过在大部分项目中,项目的 parent 可能并不是 spring-boot-starter-parent,而是公司内部定义好的一个配置,此时 spring-boot-maven-plugin 插件并不能直接使用,我们只要做如下额外的配置即可。配置完毕后就和之前一样,可以通 Maven 命令或者 IntelliJ IDEA 中的 Maven 插件进行打包。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

(4)打包完成后,在项目的 target 目录下会生成一个 jar 文件。

(5)通过 java -jar 命令可以直接启动这个 jar 文件。

java -jar demo-0.0.1-SNAPSHOT.jar

(6)我们还可以在命令后面加个 &,表示后台运行。

java -jar demo-0.0.1-SNAPSHOT.jar &

(7)由于在生产环境中,Linux 大多数情况下都是远程服务器,然后使用远程工具连接 Linux。如果使用上面命令启动 JAR,一旦窗口关闭,JAR 也就停止运行了,因此一般通过如下命令启动 JAR

注意:nohup 表示当窗口关闭时服务不挂起,继续在后台运行。

nohup java -jar demo-0.0.1-SNAPSHOT.jar &

三、一个简单的 RESTful 服务样例


(1)首先我们在项目中新建一个名为 HelloController Java 类。

(2)该类里面的内容如下:

  • @RestController 注解:告诉 Spring 以字符串的形式渲染结果,并直接返回给调用者。该注解相当于 @ResponseBody + @Controller 合在一起的作用。
  • @RequestMapping 注解:提供路由信息,它告诉 Spring 任何来自“/hello”路径的 HTTP 请求(Get)都应该被映射到 hello 方法。
package com.example.demo;
 
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
 
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "welcome to hangge.com";
    }
}

(3)运行启动程序后,访问 http://localhost:8080/hello 就可以访问这个 controller 的功能了。