Spring Boot官方文档 - 第一个Spring Boot应用


按照惯例,我们先开发一个“hello word”web 应用,体验一下Spring Boot的关键特性。因为大多数的IDE都支持maven,所以我们使用maven来构建。

开始之前,先检查一下Java和Maven是否已经安装,以及版本。

$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
$ mvn -v
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00)
Maven home: /Users/user/tools/apache-maven-3.1.1
Java version: 1.7.0_51, vendor: Oracle Corporation

1、创建POM文件

首先,我们需要创建一个pom.xml文件,用来构建项目。并添加Spring Boot依赖:

<?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>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>

这个配置将为你提供一个工作构建环境,你可以通过mvn package来验证是否配置正确;

2、添加依赖

Spring Boot提供了很多"Starters",便于添加jar包依赖。我们这里在pom的parent里使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的starter,用于提供maven的默认spring boot配置。它还提供了一个dependency-management,你可以省略其他依赖的version标签。

你还可以根据需要使用其他的"Starters",构建特殊类型的应用。因为我们构建的是一个web应用,所以这里我们添加spring-boot-starter-web依赖。只需要在pom.xml的parent标签下面添加:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

3、编写代码

我们只需要创建一个简单的Java类即可。Maven默认会从src/main/java里编译源码,所以我们在这个目录里创建文件src/main/java/Example.java:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

就只有这些,代码是不是很简单。我们来看一下关键部分。

@RestController和@RequestMapping注解

Example类的第一个注解是@RestController。它是stereotype注解。它提示编码者、Spring,这个类扮演了一个具体角色。在本案例中,我们的类是web @Controller,所以当有web请求的时候Spring会考虑它。

@RequestMapping注解提供“路由信息”。他告诉Spring所有的"/"Http请求都要映射到home方法。@RestController注解告诉Spring直接将生成的字符串返回给调用者。

注意:@RestController和@RequestMapping是SpringMVC的注解。(不是Spring Boot特有的)

@EnableAutoConfiguration注解

第二个类级注解@EnableAutoConfiguration。它告诉Spring Boot根据添加的Jar依赖来配置Spring。因为spring-boot-starter-web添加了tomcat和Spring MVC,所以auto-configuration会认为你开发了一个web应用并设置对应的Spring。

Starters和Auto-Configuration

Auto-configuration目的是和"Starters"更好的工作,但这两个概念不是完全捆绑的。你可以不管starters自由选择jar依赖,Spring Boot会始终尽可能的自动配置你的应用。

main方法

应用的最后一部分main方法。它只是Java应用入口的标准方法。这里的main方法

通过调用run方法,委托给了Spring Boot的Spring Application。SpringApplication将会引导应用,启动Spring自动配置的Tomcat web服务。我们需要将Example.class作为参数传到run方法,告诉SpringApplication谁是主Spring组件。args数组也将所有命令行的参数传进入。

运行实例

这时候我们的应用就可以工作了。因为我们已经使用了spring-boot-starter-parent POM,我们有可用的run目标启动应用。从项目根路径输入mvn spring-boot:run启动应用:

$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.5.6.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

打开浏览器访问localhost:8080,你就会看到以下内容:

Hello World!

正常退出应用,按ctrl-c即可 。

原创文章,转载请注明出处:转载自小马过河 - Spring Boot官方文档 - 第一个Spring Boot应用


马军伟
关于作者 马军伟
写的不错,支持一下

先给自己定个小目标,日更一新。