您的位置:首页 > 编程语言 > Java开发

第一个Spring Boot应用(Hello World)

2017-12-05 17:57 507 查看
本文将介绍如何安装和使用Spring Boot CLI,如何创建第一个Spring Boot应用程序,通过本文的学习读者将会对Spring Boot的内部工作原理有一些了解,对Spring Boot这项令人疯狂的技术有一个更好的画像。

你可以通过Spring Boot命令行接口(CLI)或者Maven,Gradle甚至是Apache Ant创建Spring Boot应用。本文将会一步一步的描述使用Spring Boot,需要在你的环境当中做那些设置。

安装Spring Boot CLI

在安装CLI之前,非常有必要先检查您是否已经安装了Java JDK,因为我们的实例所使用的是Spring Boot 2.0.0.M5版本,所以你必须在你的电脑中安装JDK 1.8或者以上版本。如何安装JDK本文不再赘述,读者可自行百度安装。

有很多种工具可以帮助读者安装Spring Boot CLI,本文只描述如何在Windows环境中安装,如果您是在其他操作系统中操作,请参考官方文档进行安装(https://docs.spring.io/spring-boot/docs/2.0.0.M5/reference/htmlsingle/#getting-started-installing-the-cli)。

在windows环境下,只需要下载Spring Boot CLI的zip压缩包,解压到指定文件夹,然后在环境变量Path中配置解压的Spring Boot CLI的bin目录即可,下载链接如下。

http://repo.spring.io/milestone/org/springframework/boot/spring-boot-cli/2.0.0.M5/spring-boot-cli-2.0.0.M5-bin.zip

下载完成,解压之后目录结构如下;



在环境变量的Path中添加bin所在的目录



一切就绪之后,在命令行中,输入如下命令可查看具体的Spring Boot CLI版本信息

spring --version
Spring CLI v2.0.0.M5


使用 Maven

如果您已经使用过Maven作为编译、测试、构建项目的工具的话,在Spring Boot中您也可以使用Maven。

在合适的文件目录下新建一个pom.xml文件,并写入如下内容

<?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>
<!-- Spring Boot Parent Dependencies-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M5</version>
</parent>
<dependencies>
<!-- Add dependencies: starter poms -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>


上面的代码片所展示的是Spring Boot最小的pom.xml配置,仔细看你会发现有一个<parent/>标签,在这个标签中你需要包含了一个spring-boot-starter-parent项目。这个特殊的依赖包含了应用运行需要的所有信息,它包含了Spring Boot应用所必须的类似于Spring FrameWork(spring-core)、Spring Test(spring-test)等基础依赖的依赖描述。你只需要使用这个parent pom就能完成所有的依赖描述添加工作。

另外一部分是starter poms,这个部分定义了用户实际所需要使用的Spring Boot依赖。上面的代码段给出的是spring-boot-starter-web依赖,添加这个依赖之后就可以创建一个web应用程序。starter poms部分可以引入所有需要在实际项目中使用的依赖。

...
<dependencies>
<!-- Add dependencies: starter poms -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
...


spring-boot-starter-web依赖包含所有的spring-core, spring-web, spring-webmvc,嵌入的Tomcat

server和其他web应用相关的库。

第一个Spring Boot应用(Hello World)

以上所描述的都是一些基础工作,接下来我们开发一个简单的“Hello Word”应用来强调一些Spring Boot的关键特性。我们将会使用Maven作为构建工具来构建项目。

本实例需要读者自行创建目录,开始本实例之前我们假设读者已经创建好了自己的目录并且已经进入该目录。

创建pom.xml

创建一个pom.xml文件,这个pom.xml文件将用来构建您的项目,在pom.xml文件中写入如下内容:

<?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>
<!-- Spring Boot Parent Dependencies-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M5</version>
</parent>
<dependencies>
<!-- Add dependencies: starter poms -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>


在我们的pom.xml中,我们添加了spring-boot-starter-web依赖。

写代码

要完成我们的应用,我们就需要创建一个单独的java文件,在默认情况下,Maven将会从src/main/java目录下编译资源文件,因此你需要创建你自己的目录结构,然后添加src/main/java/Hello.java:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Hello {
@RequestMapping("/")
String home() {
return "Hello World!";
}

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


虽然我们代码并不多,但是我们还是需要对这段代码进行一些必要的解释。

@RestController:这是一个构造型(stereotype) 注解,顾名思义,该注解是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。@RestController注解告诉Spring直接渲染结果字符串返回给调用者。对于Spring来讲,这个类扮演了一个特殊的角色,在本案中,我们的类是一个Web @Controller,所以当处理进来的web请求时, Spring会询问它。

@RequestMapping:此注解提供的是路由信息。它告诉Spring任何来自“/”路径的请求都会被映射到home方法。

@EnableAutoConfiguration:这个注解告诉Spring Boot去“猜测(guess)”需要如何配置Spring,主要基于pom.xml中所添加的jar依赖。由于 spring-boot-starter-web 添加了Tomcat和Spring MVC, 所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。

main方法

我们的应用程序最后部分是main方法。 这只是一个标准的方法, 它遵循Java对于一个应用程序入口点的约定。 我们的main方法通过调用run, 将业务委托给了Spring Boot的SpringApplication类。 SpringApplication将引导我们的应用, 启动Spring, 相应地启动被自动配置的Tomcat web服务器。 我们需要将 Hello.class 作为参数传递给run方法来告诉SpringApplication谁是主要的Spring组件。 为了暴露任何的命令行参数, args数组也会被传递过去。

运行应用

到此我们的应用应该可以工作了。 由于使用了 spring-boot-starter-parent POM, 这样我们就有了一个非常有用的run目标,我们可以用它启动程序。 在项目根目录下输入 mvn spring-boot:run 来启动应用:

mvn spring-boot:run




在浏览器中输入http://localhost:8080/,得到如下结果;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: