Springboot中使用内嵌服务器运行 WAR 文件的探索之路

博主猫头虎 带您 Go to New World.✨
博客首页——猫头虎的博客
《面试题大全专栏》 文章图文并茂生动形象简单易学!欢迎大家来踩踩~
《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~
《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~

希望本文能够给您带来一定的帮助文章粗浅,敬请批评指正!

文章目录

  • 使用内嵌服务器运行 WAR 文件的探索之路
    • 摘要
    • 引言
    • 正文
      • Spring Boot 的优势
      • 准备工作
      • 创建 Spring Boot 主类
      • 构建和运行
      • 后台运行与日志捕获
    • 总结
    • 参考资料
  • 原创声明

使用内嵌服务器运行 WAR 文件的探索之路

摘要

在这篇文章中,笔者猫头虎将带领大家探讨一种不依赖外部服务器,仅通过命令行即可启动 WAR 文件的方案。通过深入研究和实践,我们将了解到 Spring Boot 的强大功能,它不仅支持创建可执行的 JAR 和 WAR 文件,而且内含内嵌的服务器,如 Tomcat、Jetty 和 Undertow,极大地简化了 Java Web 应用程序的部署和运行过程。本文将从理论到实践,全面、详尽地展示如何利用 Spring Boot 和命令行工具在后台运行 WAR 文件,同时捕获并输出启动日志。通过本文,你将掌握一种快速、简便的 Java Web 应用程序部署方法。

引言

传统上,运行 WAR (Web Application Archive) 文件需要依赖外部的服务器,例如 Apache Tomcat。然而,随着技术的进步,现在我们可以通过使用 Spring Boot 来简化这个过程。Spring Boot 允许我们将应用程序打包为一个可执行的 JAR 或 WAR 文件,这些文件包含了一个内嵌的服务器,从而使我们能够轻松地从命令行启动应用程序。

正文

Spring Boot 的优势

Spring Boot 具有以下几个显著的优势:

  1. 简化配置:
    Spring Boot 提供了许多默认配置,从而减少了配置文件的需求。

  2. 内嵌服务器:
    Spring Boot 支持内嵌的 Tomcat、Jetty 和 Undertow 服务器,无需额外安装和配置。

  3. 独立运行:
    应用程序可以打包为可执行的 JAR 或 WAR 文件,使得部署和运行变得非常简单。

准备工作

首先,我们需要确保我们的项目已经正确地配置为 Spring Boot 项目。更新 pom.xml 文件以包含 Spring Boot 的依赖项和插件:

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>2.5.5version>  
parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
dependencies>

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

创建 Spring Boot 主类

接下来,我们需要创建一个 Spring Boot 主类,作为应用程序的入口点:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

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

}

构建和运行

使用 Maven 或 Gradle 构建项目,然后从命令行启动应用程序:

mvn clean package
java -jar target/your-app.war

后台运行与日志捕获

在 Linux 系统中,我们可以创建一个 shell 脚本来简化启动过程,并在后台运行应用程序,同时捕获和输出启动日志:

#!/bin/bash

# 定义 WAR 文件和日志文件的路径
WAR_FILE="/path/to/your-app.war"
LOG_FILE="/path/to/output.log"

# 启动应用程序
nohup java -jar $WAR_FILE > $LOG_FILE 2>&1 &

# 使用 tee 命令将启动日志输出到控制台和日志文件
echo "Application is starting..." | tee -a $LOG_FILE

运行上述脚本,应用程序将在后台启动,并且启动日志将被捕获和输出。

总结

通过 Spring Boot,我们可以轻松地从命令行启动 WAR 文件,无需依赖外部服务器。本文详细介绍了如何配置和运行一个 Spring Boot 项目,以及如何创建一个 shell 脚本来简化启动过程。希望本文能为你提供在 Java Web 应用程序部署和运行方面的有用指南。

参考资料

  1. Spring Boot 官方文档
  2. Apache Tomcat 官方网站

本文由猫头虎首发,欢迎转载,但请注明作者和来源。


原创声明

======= ·

  • 原创作者: 猫头虎

作者wx: [ libin9iOak ]

学习 复习

本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

你可能感兴趣的:(Spring全家桶技术专区,spring,boot,java-ee,spring,cloud,intellij-idea,spring)