博主猫头虎 带您 Go to New World.✨
博客首页——猫头虎的博客
《面试题大全专栏》 文章图文并茂生动形象简单易学!欢迎大家来踩踩~
《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~
《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~
希望本文能够给您带来一定的帮助文章粗浅,敬请批评指正!
在这篇文章中,笔者猫头虎将带领大家探讨一种不依赖外部服务器,仅通过命令行即可启动 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 提供了许多默认配置,从而减少了配置文件的需求。
内嵌服务器:
Spring Boot 支持内嵌的 Tomcat、Jetty 和 Undertow 服务器,无需额外安装和配置。
独立运行:
应用程序可以打包为可执行的 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 主类,作为应用程序的入口点:
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 应用程序部署和运行方面的有用指南。
本文由猫头虎首发,欢迎转载,但请注明作者和来源。
======= ·
作者wx: [ libin9iOak ]
学习 | 复习 |
---|---|
✔ |
本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。
作者保证信息真实可靠,但不对准确性和完整性承担责任。
未经许可,禁止商业用途。
如有疑问或建议,请联系作者。
感谢您的支持与尊重。
点击
下方名片
,加入IT技术核心学习团队。一起探索科技的未来,共同成长。