准备
在开始之前,打开终端并运行以下命令,以确保安装了有效的Java和Maven版本。
$ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/local/Web/apache-maven-3.6.3
Java version: 1.8.0_241, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.6", arch: "x86_64", family: "mac"
脚手架
使用脚手架来搭建基本的springboot开发框架 https://start.spring.io/
示例
填写Project Metadata,自定义项目的配置,完成后点击GENERATE下载示例。
编写第一个web程序
要完成我们的应用程序,我们需要创建一个Java文件。项目的代码放到src/main/java目录下,添加一个名为的文件src/main/java/Example.java,其中包含以下代码:
package com.springboot.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Francis
* @date 2020/12/22 10:22 上午
*/
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!!";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
这样就完成了一个基本的REST Web接口编写,尽管这里没有太多代码,但是正在发生很多事情,我们接下来逐步介绍下重要部分。
@RestController和@RequestMapping注释
我们Example类的第一个注释是@RestController,这被称为构造型注释,是@ResponseBody和@Controller的组合注解。它为阅读代码的人和Spring提供了提示,提示该类起特定作用。在这种情况下,我们的类是一个web @Controller,因此Spring在处理传入的Web请求时会使用它。
该@RequestMapping注释提供“路由”的信息。它告诉Spring任何具有/路径的HTTP请求都应映射到该home方法。该@RestController注解告诉Spring使得到的字符串直接返回给调用者。
@EnableAutoConfiguration批注
第二个类级别的注释是@EnableAutoConfiguration。这个注释告诉Spring Boot根据添加的jar依赖关系“猜测”您如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,因此自动配置假定您正在开发Web应用程序并相应地设置Spring。
自动配置旨在与“启动器”配合使用,但是这两个概念并没有直接联系在一起。您可以在启动程序之外自由选择jar依赖项。Spring Boot仍然尽其最大努力来自动配置您的应用程序。
main方法
最后一部分是main方法。这是遵循Java约定的应用程序入口点的标准方法。我们的main方法SpringApplication通过调用委托给Spring Boot的类run。 SpringApplication引导我们的应用程序,启动Spring,这反过来又启动了自动配置的Tomcat Web服务器。我们需要将Example.class一个参数传递给run方法,以判断SpringApplication哪个是主要的Spring组件。
运行
此时,您的应用程序应该可以工作了。由于使用了spring-boot-starter-parent POM,因此有一个run目标,可以用来启动应用程序。mvn spring-boot:run从根项目目录中运行以启动应用程序。您应该看到类似于以下内容的输出:
如果您打开Web浏览器到localhost:8080,则应该看到以下输出:
创建一个可执行的Jar
创建在生产环境中运行的完全独立的可执行jar文件,可执行jar是包含已编译类以及代码需要运行的所有jar依赖项的文件。
要创建可执行jar,我们需要将添加spring-boot-maven-plugin到pom.xml。为此,请在该dependencies部分下方插入以下行:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
springboot脚手架已经帮我们初始化配置好了pom.xml,无需我们再进行配置,接下来我们直接运行以下命令:
mvn package
如果查看target目录,则应该看到springboot-0.0.1-SNAPSHOT.jar。该文件的大小应为10 MB左右。如果您想查看内部,可以使用jar tvf,如下所示:
jar tvf target/springboot-0.0.1-SNAPSHOT.jar
您还应该springboot-0.0.1-SNAPSHOT.jar.original在target目录中看到一个更小的文件。这是Maven在Spring Boot重新打包之前创建的原始jar文件。
要运行该应用程序,使用以下java -jar命令:
java -jar target/springboot-0.0.1-SNAPSHOT.jar