Spring Boot 是一个用于简化 Spring 应用程序开发的框架,其设计目标是使开发人员能快速、便捷地构建出独立、生产级别的 Spring 应用程序。Spring Boot 最显著的特点之一就是它可以将整个应用打包成一个可执行的 JAR 文件,从而使得应用的部署和运行变得极其简单。

为什么 Spring Boot 的 JAR 可以直接运行?

  1. 嵌入式服务器: Spring Boot 中的 JAR 文件通常会内置一个 Web 服务器(例如 Tomcat、Jetty 或 Undertow),这样就不需要外部的服务器环境来运行应用程序。开发人员只需启动 JAR 文件,Spring Boot 就会自动启动嵌入式服务器,初始化 Spring 上下文,然后处理请求。

  2. 约定优于配置: Spring Boot 提倡“约定优于配置”的理念,许多常见的配置可以通过默认设置来实现,开发者不需要花费大量时间去配置和理解复杂的底层细节。Spring Boot 提供了许多自动配置的特性,让用户可以在不进行过多配置的情况下快速开始开发。

  3. Spring Boot Maven 插件: 在使用 Maven 进行构建时,Spring Boot 提供了 spring-boot-maven-plugin。该插件不仅负责构建 JAR 文件,还可以指定如何运行这个 JAR。插件会自动将所有的依赖包和应用程序的类打包到一个可执行的 JAR 文件中。

示例代码

下面是一个简单的 Spring Boot 应用,展示如何构建和运行一个可执行的 JAR 文件。

  1. 创建 Maven 项目

首先,在你选择的项目目录下创建一个 Maven 项目,pom.xml 文件内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>17</java.version>
        <spring-boot.version>2.5.4</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <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>
</project>
  1. 创建主应用类

src/main/java/com/example/demo 目录下创建一个应用程序的主类 DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

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

    @GetMapping("/")
    public String home() {
        return "Hello, Spring Boot!";
    }
}
  1. 打包和运行

现在,你可以使用下面的命令将项目打包成 JAR 文件:

mvn clean package

构建成功后,会在 target 目录下生成名为 demo-0.0.1-SNAPSHOT.jar 的文件。你可以通过以下命令来运行这个 JAR 文件:

java -jar target/demo-0.0.1-SNAPSHOT.jar

启动后,访问 http://localhost:8080,应该能看到 "Hello, Spring Boot!" 的返回信息。

总结

通过以上的介绍和示例代码,我们可以看到 Spring Boot 通过嵌入式服务器、自动配置和 Maven 插件的结合,使得 JAR 文件可以直接运行,极大地方便了开发、测试和部署的流程。只需简单的几步,开发者就可以将应用嵌入到一个自包含的 JAR 文件中,让所有的依赖和配置都包含在内,真正实现“一次构建,到处运行”。这种便利的特性使得 Spring Boot 成为了现代微服务架构和快速开发的重要工具。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部