Spring Boot 之 Hello World
读者人群
此文写给刚刚开始接触 Spring Boot 的 Java 开发者
前置知识点
虽然你是在极度碎片化的知识海洋内看到这篇文章,但在阅读这篇文章之前需要了解以下知识:
- Java 开发环境,不管是使用哪种 IDE,哪怕是记事本呢
- Java 基础,能够使用 Java 进行简单的开发,了解注解等基本概念
- Maven 基础,使用过 Maven 进行项目构建
什么是 Spring Boot
Spring Framework 目前可以说是企业级 Java 开发的标准,在 Java 生态中有着举足轻重的地位。Spring Framework 作为基础的 Web 开发框架,需要大量第三方框架配合进行应用开发,例如 MyBatis、Hibernate、Shiro、Freemarker 等,随着 Spring 生态的发展和企业级应用日趋复杂的现状,通过 Spring Framework 进行开发时需要进行大量的配置以便完成对其他框架的集成,业务比较简单的项目中甚至可能出现配置文件比代码还要多的情况。
Spring Boot 在这种背景下诞生,一是为了降低 Spring Framework 与其他框架的集成复杂度,二是为了更好的支持分布式和云原生开发,Spring Boot 便是 Spring 团队另一力作 Spring Cloud (分布式开发框架) 的基础。
Hello World
开始今天的正题,Spring Boot 项目依赖于 Maven 或 Gradle,这里我们使用 Maven,首先我们创建一个 Maven 项目,在前置知识点部分我们已经默认看到这里的你已经掌握了 Maven 的基本使用,这里我们不再详细描述。
- 在 pom.xml 中添加以下内容:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.2</version>
</parent>
spring-boot-starter-parent
主要提供默认依赖,在使用 Maven 时引入依赖需要显式指定 version
,在引入 spring-boot-starter-parent
后,最显而易见的用户便是不再需要指定版本。
- 添加 web 依赖,同样在 pom.xml 中添加以下内容:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
starter 在 Spring Boot 中相当于模块,在没有 starter 之前,需要开发者自行维护依赖关系和版本,同时自行完成于 Spring Framework 的集成,极大概率出现版本兼容等问题,Spring Boot 便是通过 starter 整合依赖并提供默认配置来简化依赖管理,在加入上述配置后我们便可以通过 mvn dependency:tree 查看依赖,仅仅通过一个配置便引入了 N 个 jar 包。
image.png
- 创建应用启动类。在
src/main/java
下创建 package,同时创建一个 Java 类作为启动类,后续所有需要 Spring 管理的代码都需要卸载启动类同级的包或者子包下。
package com.example.spring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@SpringBootApplication
public class SpringExampleStarter {
public static void main(String[] args) {
SpringApplication.run(SpringExampleStarter.class, args);
}
}
第 9-11 行便是启动代码,默认使用内嵌的 Tomcat 容器启动在 8080 端口应用。完成以上代码后便可以启动应用了,但是因为没有任何逻辑,所以也只能在控制台看到启动成功的提示而已,我们添加一个接口来验证。
- 在启动类同级目录创建一个 Java 类,其中代码如下,提供一个非常简单的接口:
package com.example.spring;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("hello")
public String hello(){
return "Hello Spring Boot";
}
}
- 至此我们完成了最简单的 Spring Boot 应用开发,启动或重启应用后即可在浏览器中通过
http://localhost:8080/test/hello
查看接口返回内容。
image.png