Spring Boot 和 Spring Cloud 已成为当前最流行的微服务框架。本文通过样例演示如何搭建并运行一个简单的 Spring Boot 项目。在开发之前,首先确认我们的电脑上已经有以下环境:
- JDK8
- Maven3.0+
- Intellij IDEA
一、创建项目
创建项目一共有两种方式,下面分别进行介绍。
1,在线创建项目
(1)在线创建是 Spring Boot 官方提供的一种创建方式,在浏览器中访问如下网址:
https://start.spring.io/
(2)在打开的页面中我们可以选择项目的构建工具是 Maven 还是 Gradle、语言是 Java 还是其它、要使用的 Spring Boot 版本号、项目的组织 Id(包名)、模块名称以及项目的依赖。
因为我要创建一个 SpringBoot 项目,所以项目依赖这块我们输入 Web 回车后进行添加。
(3)所有信息填写完毕后,点击下方的“Generate Project”按钮即可将生成的模版下载到本地,解压后使用 IDE 打开即可开始项目的开发了。
2,使用 Intellij IDEA 创建
(1)创建项目时选择 Spring Initializr
接着输入项目的基本信息,包括组织 Id、模块名称、项目构建类型、最终生成包的类型、Java 的版本、开发语言、项目版本号、项目描述以及项目的包。
(2)接着选择项目所需要的依赖,之后 Intellij IDEA 会自动把选中的依赖添加到项目的 pom.xml 文件中。
因为我要创建一个 SpringBoot 项目,所以这里我们添加了个 Web 依赖。
二、运行项目
有三种不同的方式启动项目,下面分别进行介绍。
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 进行打包。
<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 文件。
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 方法。
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
(3)运行启动程序后,访问 http://localhost:8080/hello 就可以访问这个 controller 的功能了。
早年同窗始相知,三载瞬逝情却萌。年少不知愁滋味,犹读红豆生南国。别离方知相思苦,心田红豆根以生。