Spring Boot 3.x 快速体验

2,859 阅读3分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。

Spring Boot 可以轻松创建可以“直接运行”的独立的、生产级的基于 Spring 的应用程序。

Spring Boot 也提供了非常多的三方库快速集成方案,其实就是我们开发中常用的 starter。通常大多数情况下 Spring Boot 运用不需要过多的 Spring 配置。

创建项目

创建我推荐大家直接在 https://start.spring.io/上完成,非常适合新上手的小白以及我这样喜欢科学利用工具的人。如下图所示:

现在 SpringSpring Boot等相关系列的组件都开始往 Gradle 上靠。我们本次,以及该系列的文章都统一采用 Gradle 作为依赖管理。

Spring Boot我们本次选择 3.x ,JDK 依然选择 1.8 因为这也是大多数互联网公司的主流版本。

配置文件

build.gradle配置文件如下所示:

plugins {
    id 'org.springframework.boot' version '3.0.0-SNAPSHOT'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group 'io.zhengsh'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

在配置文件中, 我主要是加入了 :
spring-boot-starter-web 主要是提供 Spring MVC 相关的依赖,让我们可以方便定义接口。
lombok 就是一个代码生成的工具,非常方便,可以快速帮我们生成 POJO 的 get、set 方法,生成构造器,构造方法,让代码非常的简洁,提升可读性。主要注意的是要配合 IDEA 、Eclipse 插件来一起使用

测试代码

创建接口 API 文件:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

	@GetMapping("/")
	public String index() {
		return "Greetings from Spring Boot!";
	}
}

上面这段代码主要是为我们对外暴露一个 API 接口,接口地址是服务的默认访问地址,当我们发起 get 请求的时候就可以直接在屏幕上打印 Greetings from Spring Boot!.

然后创建启动文件, 这个文件是必须要的,它的功能非常强大,也是我们 Spring Boot 启动文件的标准模板,大家可以看到我们在这个过程中基本没有 XML 业务配置,就完成了 Spring Boot 应用的编写。

@SpringBootApplication
public class Application {

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

@SpringBootApplication 是一个应用启动类的注解,它添加了以下所有内容:

  • @Configuration: 将类标记为应用程序上下文的 bean 定义源。
  • @EnableAutoConfiguration:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。例如,如果 spring-webmvc位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置 DispatcherServlet
  • @ComponentScan: 告诉 Spring 在包中查找其他组件、配置和服务 io.xcyb,让它找到控制器。

main()方法使用 Spring Boot 的 SpringApplication.run()方法来启动应用程序。

启动和访问

通过 IDEA 启动以后访问和显示如下

$ curl localhost:8080
Greetings from Spring Boot!

项目总结

其实 Spring Boot 非常简单,极大程度的简化了咱们开发的成本,以及屏蔽了非常复杂的 Spring 配置,目前基本是 0 配置。这个也是 Spring Boot 被广泛的 Java 程序员所接受的原因。还有一方面就是它提供了非常方便的集成/拓展点和丰富的组件, 后续的文章会陆续更新下面的内容:

  • Web 组件
  • I/O 组件
  • Data 组件(SQL/NoSQL)
  • Message 组件(支持主流MQ : Kafka, RocketMQ、RabbitMQ)
  • Security 组件(支持 Auth2, Spring Security、LDAP)
  • 还有基于 Spring Boot 为基础的 Spring Cloud 系列的组件

通过这些组件的支持,我们可以快速完成一个 Java 单体运用,极大的提升了我们的开发效率,同时也降低了程序开发的学习成本。

参考文档