什么是 Spring Boot 以及为什么需要它?
Spring Boot 是一个用于创建 Java 应用程序的框架,它是流行 Spring Framework 的上层构建。其主要目标是尽可能简化和加速生产级应用程序的开发,使开发人员免于繁琐的配置工作。
Spring Boot 解决的主要问题:
- 自动配置: 框架会根据项目中添加的依赖项自动配置 bean 和组件。您无需手动编写 XML 配置或 Java 类来配置 DataSource、JPA、Security 等。
- 内嵌服务器: Spring Boot 应用程序作为独立的 JAR 文件运行,内嵌 Tomcat、Jetty 或 Undertow。这免去了将 WAR 文件部署到外部服务器的需要。
- 生产就绪: 开箱即用地提供指标、健康检查、通过 application.properties/yml 进行的外部配置。
- 最小化配置: 启动依赖项(starters)将相关库分组,这样您可以添加一个依赖项而不是十个。
Spring Boot 非常适合创建微服务、REST API、Web 应用程序、批处理数据和企业级系统。
安装 Spring Boot
Spring Boot 不能通过 pip 或 npm 安装。它是一个 Java 框架,作为依赖项添加到 Maven 或 Gradle 构建系统中。推荐的入门方式是使用 Spring Initializr。
选项 1:Spring Initializr(推荐)
- 访问 start.spring.io
- 选择:Project (Maven)、Language (Java)、Spring Boot(最新稳定版本)
- 填写元数据:Group(例如 com.example)、Artifact(例如 demo)
- 添加依赖项:Spring Web、Spring Data JPA、H2 Database(作为示例)
- 点击 "Generate" — 将下载包含就绪项目的 ZIP 压缩包
- 解压并在 IDE(IntelliJ IDEA、Eclipse、VS Code)中打开
选项 2:Maven(手动配置)
在 pom.xml 中添加以下代码:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> <relativePath/></parent>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency></dependencies>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>选项 3:Gradle
plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4'}
group = 'com.example'version = '0.0.1-SNAPSHOT'
repositories { mavenCentral()}
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web'}快速入门:Spring Boot 上的 Hello World
让我们创建一个简单的 REST 应用程序,返回 "Hello, PythonLib!"。
步骤 1:主应用程序类
package com.example.demo;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class