行业资讯 2025年08月6日
0 收藏 0 点赞 732 浏览 7648 个字
摘要 :

文章目录 1. Spring Boot简介 1.1. Spring Boot 的显着特点 1.2. Spring Boot 的局限性和缺点 2. Spring Boot应用程序的先决条件 3. 创建一个新的Spring Boot项目 4. ……




  • 1. Spring Boot简介
    • 1.1. Spring Boot 的显着特点
    • 1.2. Spring Boot 的局限性和缺点
  • 2. Spring Boot应用程序的先决条件
  • 3. 创建一个新的Spring Boot项目
  • 4. 揭秘生成的代码
    • 4.1. 项目结构
    • 4.2. 生成的文件
      • MyFirstAppApplication.java
      • MyFirstAppApplicationTests.java
      • 应用程序属性
      • pom.xml
  • 5. 编写你的第一个控制器
  • 6. 构建应用程序
  • 7. 运行和测试应用程序
  • 8. 常见问题解答
    • 8.1. 如何使用 Maven 创建新的 Spring Boot 应用程序?
    • 8.2. 如何使用 Spring Boot CLI 创建新的 Spring Boot 应用程序?
    • 8.3. 如何在 IntelliJ(或任何其他 IDE)中创建 Spring Boot 应用程序?
  • 9. 总结

SpringBoot 是一种广泛流行的框架,通常用于构建整体式 MVC 应用程序、实时应用程序以及微服务。对于 Web 应用程序,Spring Boot 提供了用于创建 REST API、处理 HTTP 请求以及使用Thymeleaf等模板引擎渲染视图的工具。同样,对于微服务,Spring Boot通过使用其服务发现、负载均衡和配置管理等功能来支持Spring Cloud 。

本文向初学者介绍了 Spring boot 框架,以及创建第一个提供 hello world 消息的Spring boot 项目的分步指南。

1. Spring Boot简介

Spring Boot 是一个开源框架,可简化基于 Spring 的独立生产级应用程序的开发。Spring Boot 构建在 Spring 框架之上,提供各种工具、库和约定来简化应用程序的配置和部署。

Spring Boot 对 Spring 平台和第三方库持固执己见的观点。当我们在类路径中添加这些库时,Spring boot 会自动配置库中最明显需要的某些功能。尽管如此,它允许覆盖、自定义或完全禁用任何模块或库的自动配置。

例如,如果我们想在应用程序中添加持久性功能,我们只需spring-boot-starter-data-jpa在项目中添加依赖项,它就会自动执行以下操作:

  • 包括必要的依赖项,例如 Jakarta Persistence API (JPA) 和Hibernate等。
  • 设置DataSourceEntityManagerFactory和事务管理。
  • 扫描应用程序的类路径中的@Entity类并将它们注册到上下文中。
  • 扫描JpaRepository或相关接口并配置它们。
  • application.properties读取数据库连接属性并设置与指定数据库的连接。
  • 配置默认连接池以优化数据库连接并有效地重用它们。

如果没有 Spring Boot,我们将自己单独配置上述所有功能。Spring Boot 自动配置消除了这种痛苦,并为我们做了一切。我们可以进一步创建特定的 bean 或编写自定义属性来自定义上面列出的任何功能。

1.1. Spring Boot 的显着特点

Spring Boot框架在任何普通应用程序中都提供以下功能:

  • Spring Boot Starters:Starters 是常见用例的预配置模板,例如 Web 应用程序、持久性、消息传递等。我们在简介部分讨论了data-jpa 或持久性启动器。
  • 自动配置:Spring Boot 使用约定优于配置的方法,并根据项目的依赖项和设置自动配置 bean。
  • 嵌入式服务器:Spring Boot 包含嵌入式 servlet 容器(默认为Tomcat)来运行应用程序,而无需外部服务器。
  • 生产就绪功能:Spring Boot 提供生产就绪功能,例如运行状况检查、指标、安全性和外部化配置。

1.2. Spring Boot 的局限性和缺点

一切都是有代价的。Spring Boot 也不例外。以下是使用 Spring Boot 的限制或缺点:

  • 初始学习曲线:Spring boot 在幕后自动完成了很多事情,以至于对于新开发人员来说,跟踪所有事情可能会变得难以承受。如果没有 Spring boot,当我们自己编写所有内容时,这需要时间,但会给我们更多的控制力和信心。
  • 使用非标准库时的灵活性有限:Spring Boot 的自动配置方法可能并不总是符合特定的项目需求。例如,Spring Boot 自动将HikariCP配置为默认连接池实现。假设,我们希望在组织内部有一个自定义连接池。在这种情况下,编写和使用自定义 bean 和自定义非标准属性可能与 Spring boot 的自动配置不太一致。
  • 复杂的调试:借助自动配置和幕后魔力,调试复杂的问题可能具有挑战性。开发人员可能无法完全了解组件如何连接和一起运行。

2. Spring Boot应用程序的先决条件

在我们开始开发第一个应用程序之前,请确保我们具备以下条件:

  • Java开发工具包(JDK):Spring Boot在Java上运行。对于 Spring Boot 3.x,所需的最低版本是 Java 17。Spring Boot 2.x 至少需要 JDK 8 或更高版本。
  • 构建工具:Maven 或 Gradle 等构建工具将有助于管理项目的依赖项和构建过程。
  • 集成开发环境 (IDE):虽然也可以在文本编辑器中编码和运行应用程序,但使用 IntelliJ IDEA、Eclipse 或 Visual Studio Code 等 IDE 有助于实现代码完成、自动编译、调试等功能,和项目管理。

此外,还需要具备 Java 编程和 Spring 框架的基本知识。它将帮助您更深入地了解 Spring boot 的魔力。

3. 创建一个新的Spring Boot项目

对于初学者来说,创建新的 Spring boot 项目的最简单方法是使用Spring Initializr网站。它允许我们在一个屏幕中选择首选的构建工具、Java 版本和项目依赖项。SpringBoot教程:创建Hello World应用程序选择所有首选项后,我们可以将项目下载为 zip 文件并将其作为现有 Maven 项目导入到 IDE 中。在这个演示中,我们可以使用IntelliJ Idea来编写和执行代码。

SpringBoot教程:创建Hello World应用程序

4. 揭秘生成的代码

让我们了解应用程序中的代码结构和生成的文件。

4.1. 项目结构

项目中创建的主要目录有:

  • /src/main/java:包含应用程序的 Java 源代码。我们在这个目录中编写所有新的类和接口。
  • /src/test/java:包含应用程序的测试代码。所有新的单元测试都位于此目录中。
  • /src/main/resources:包含应用程序使用的非 Java 资源。例如,属性文件、视图文件、配置文件等。

当我们构建应用程序时,所有编译的文件都会进入/target目录。构建工具从此目录生成部署存档文件(.jar 或 .war 文件)。

4.2. 生成的文件

该工具生成的主要文件有:

MyFirstAppApplication.java

它包含main()方法,该方法是应用程序运行时的起点。它包含@SpringBootApplication注释。它在内部触发 bean 自动配置和组件扫描,配置应用程序中的所有 bean 并将它们注册到应用程序上下文。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyFirstAppApplication {

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

MyFirstAppApplicationTests.java

它包含用于对应用程序代码进行单元测试的 Junit 5 测试。我们可以在包中创建更多这样的类。

@SpringBootTest
class MyFirstAppApplicationTests {

  @Test
  void contextLoads() {
  }
}

应用程序属性

它包含配置特定模块所需的默认属性。默认情况下,它是空的。

pom.xml

它是管理项目的依赖项和其他库的构建文件。我们可以在此文件中添加或删除依赖项。

请注意,spring-boot-starter-parent是一个特殊的 Maven 项目,充当所有 Spring Boot 应用程序的父 POM 或超级 POM。它的版本控制启动模块提供的默认功能和依赖库的版本。

spring -boot-maven-plugin是 Spring 团队提供的 Maven 插件。它简化了构建和打包 Spring Boot 应用程序的过程,使它们可执行且易于部署。

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<project ...>
  <modelVersion>4.0.0</modelVersion>

  <!-- The parent is always the spring-boot-starter-parent -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.1</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <groupId>com.panziye.demo</groupId>
  <artifactId>my-first-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>my-first-app</name>
  <description>My First Application with Spring Boot</description>

  <properties>
    <java.version>17</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

5. 编写你的第一个控制器

生成的应用程序仅提供必要的基础设施,我们必须编写针对最终用户的额外业务逻辑。例如,我们可以编写一个简单的 REST API,它接受用户的输入、连接到后端数据库并以 JSON/XML 格式返回适当的响应。

在本教程中,我们将编写一个简单的 API,用于返回消息\'Hello, World!\'作为响应。我们创建一个新类HelloWorldController并编写以下代码。

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

@RestController
public class HelloWorldController {

  @GetMapping(\"hello\")
  String hello() {
    return \"Hello, World!\";
  }
}

6. 构建应用程序

创建控制器后,我们可以在 IDE 本身中测试 API 代码,这就是 IDE 提供帮助的地方。

如果我们不使用 IDE,则必须编译应用程序并将应用程序构建为可执行 jar。该 jar 文件可以作为普通应用程序从命令行运行。

mvn build

它会在/target目录中生成一个名为my-first-app-0.0.1-SNAPSHOT.jar的 jar 文件。我们可以在pom.xml文件中自定义生成的jar文件的名称。

<build>
  <finalName>my-first-spring-boot-app</finalName>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

现在我们再次运行“mvn package”命令,它会创建名称为my-first-spring-boot-app.jar 的jar 文件。

7. 运行和测试应用程序

要在开发环境中运行应用程序,如上一节所述,我们可以直接从 IDE 运行。为此,右键单击MyFirstAppApplication.java并选择该\'Run MyFirstAppApplication.main()\'选项。

上面的命令在自动包含在spring-boot-starter-web模块中的嵌入式 Tomcat 服务器中运行应用程序。

SpringBoot教程:创建Hello World应用程序要从终端或命令提示符运行应用程序,我们可以使用以下命令:

mvn spring-boot:run

它从终端启动应用程序,我们可以在打印的日志中验证相同的情况。

[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.panziye.demo:my-first-app >-----------------
[INFO] Building my-first-app 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] Attaching agents: []

  .   ____          _            __ _ _
 /\\\\ / ___\'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\
( ( )\\___ | \'_ | \'_| | \'_ \\/ _` | \\ \\ \\ \\
 \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  \'  |____| .__|_| |_|_| |_\\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.2)

2023-08-09T16:40:26.550+05:30  INFO 21616 --- [main] c.h.demo.MyFirstAppApplication           : Starting MyFirstAppApplication using Java 19-loom with PID 21616 (C:\\Users\\lokes\\Downloads\\my-first-app\\my-first-app\\target\\classes started by lokesh in C:\\Users\\lokes\\Downloads\\my-first-app\\my-first-app)
...
...
...
2023-08-09T16:40:28.085+05:30  INFO 21616 --- [main] c.h.demo.MyFirstAppApplication           : Started MyFirstAppApplication in 2.091 seconds (process running for 2.486)

应用程序启动后,我们可以访问 hello world API 来验证一切是否按预期工作。

curl -X GET http://localhost:8080/hello

//Prints Hello, World!

8. 常见问题解答

8.1. 如何使用 Maven 创建新的 Spring Boot 应用程序?

使用 Maven 创建 Spring boot 项目与创建任何其他普通 Web 项目类似。创建项目后,我们必须添加pom.xml以引用父 pom spring-boot-starter-parent并创建/修改其他文件。

mvn archetype:generate -DgroupId=com.panziye.demo \\
-DartifactId=my-first-app \\
-DarchetypeArtifactId=maven-archetype-quickstart \\
-DinteractiveMode=false

8.2. 如何使用 Spring Boot CLI 创建新的 Spring Boot 应用程序?

Spring Boot CLI是一个命令行工具,用于简化 Spring Boot 应用程序的开发。它提供了一种快速创建、开发和测试 Spring Boot 项目的便捷方法,无需设置复杂的项目结构或手动配置依赖项。

我们可以从Spring Boot官方网站下载CLI,或者使用像SDKMAN这样的包管理器来安装它。

安装 CLI 后,导航到我们要创建项目的目录,然后运行以下命令:

spring init --dependencies=web \\
--build=maven \\
--groupId=com.panziye.demo \\
--artifactId=my-first-app \\
--name=MyFirstApp

它将从头开始创建一个 Spring boot 应用程序,您可以在您最喜欢的 IDE 中打开该项目并开始进行更改。

8.3. 如何在 IntelliJ(或任何其他 IDE)中创建 Spring Boot 应用程序?

在 IntelliJ 或任何其他 IDE 中创建新的 Spring Boot 项目与任何其他非 Spring Boot 应用程序类似。我们通过选择适当的maven坐标和属性来创建一个普通的Java项目。SpringBoot教程:创建Hello World应用程序

创建项目后,我们必须修改父pom引用的pom.xml并导入额外的spring boot启动器模块和插件。

9. 总结

本 Spring Boot 教程涉及该框架的最基本概念,包括特性、优点和缺点。然后我们讨论了引导简单 Spring Boot 项目的不同方法,例如使用 Spring Initializr 门户、命令行和 IDE(例如 IntelliJ)。

我们开发了一个简单的 REST API,构建了项目并将其部署在嵌入式 Tomcat 服务器中。最后,我们测试了 API,本次 Spring boot 入门教程就结束了。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/8996.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号