springboot的war和jar包的使用详解

Spring Boot的WAR和JAR包使用详解

Spring Boot是一个非常流行的开源框架,可以帮助开发者快速建立基于Spring的应用程序。一般情况下,Spring Boot提供两种打包方式:JAR包和WAR包。本文将详细介绍这两种打包方式的使用方法。

JAR包

JAR包是最常见的Java应用程序打包方式,可以包含所有需要的类文件和资源文件,还可以包含必需的库文件和配置文件。使用JAR包打包Spring Boot应用程序非常方便。

1.创建一个Maven项目

首先,我们需要创建一个Maven项目,示例代码如下:

<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>myproject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

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

    <packaging>jar</packaging> 

    <properties> 
        <maven.compiler.source>1.8</maven.compiler.source> 
        <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 
</project>

2.编写一个Spring Boot应用程序类

在src/main/java目录下创建一个包名(例如com.example.myproject)与artifactId(即myproject)相同的Java类作为Spring Boot应用程序入口,示例代码如下:

package com.example.myproject; 

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

@SpringBootApplication 
@RestController 
public class MyProjectApplication { 
    @RequestMapping("/") 
    public String home() { 
        return "Hello World!"; 
    } 

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

3.构建JAR包

运行以下Maven命令进行构建:

mvn clean package

此命令会在target目录下生成一个名为myproject-0.0.1-SNAPSHOT.jar的JAR包。

4.运行JAR包

使用以下命令运行JAR包:

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

打开浏览器,在地址栏输入http://localhost:8080/,应该会看到“Hello World!”字样,至此,我们已经成功地使用JAR包方式打包并运行了Spring Boot应用程序。

WAR包

WAR包是Web应用程序打包方式,可以包含所有需要的类文件和资源文件,还可以包含必需的库文件和配置文件。使用WAR包打包Spring Boot应用程序也非常方便。

1.创建一个Maven项目

与使用JAR包方式的第1步相同。

2.修改pom.xml文件,将打包方式改为WAR

将pom.xml文件中的jar改为war,示例代码如下:

<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>myproject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

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

    <packaging>war</packaging> 

    <properties> 
        <maven.compiler.source>1.8</maven.compiler.source> 
        <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 
</project>

3.修改WebApplicationInitializer类

在src/main/java目录下创建一个实现javax.servlet.ServletContainerInitializer接口的Java类,示例代码如下:

package com.example.myproject.config; 

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

@SpringBootApplication 
public class MyProjectApplication extends SpringBootServletInitializer { 
    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
        return application.sources(MyProjectApplication.class); 
    } 

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

4.构建WAR包

运行以下Maven命令进行构建:

mvn clean package

此命令会在target目录下生成一个名为myproject-0.0.1-SNAPSHOT.war的WAR包。

5.部署WAR包

将生成的WAR包拷贝至Tomcat或其他Servlet容器的webapps目录下,启动Tomcat或Servlet容器即可访问。在地址栏输入http://localhost:8080/myproject/,应该会看到“Hello World!”字样。

结论

基于Spring Boot的应用程序可以使用两种不同的打包方式:JAR包和WAR包。无论您选择哪种方式,都可以快速部署和运行Spring Boot应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot的war和jar包的使用详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JAVA生成pdf文件的实操教程

    JAVA生成PDF文件的实操教程 本教程将教你如何使用JAVA生成PDF文件。你将学会使用开源库iText,它是一个功能强大的PDF库,支持PDF文件的创建、文本、表格、图片、字体等元素的操作。 步骤1:导入iText库 你需要先下载iText库并导入到你的JAVA项目中。可以从官网或Github获取。使用maven管理,可以这样引入: <depend…

    Java 2023年5月19日
    00
  • java 如何实现日志追踪MDC

    Java实现日志追踪MDC攻略 1. 什么是MDC? MDC全称为Mapped Diagnostic Context,即映射的诊断上下文。MDC提供了一种在并发系统中记录日志信息的方式,它在不同线程中存储不同的值,保证线程安全的同时,能够让日志信息具有可追溯性。 2. 实现MDC日志追踪的步骤 以下是实现MDC日志追踪的步骤: 2.1 初始化MDC 一般情况…

    Java 2023年5月26日
    00
  • MDC轻量化日志链路跟踪的若干种应用场景

    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.” – Edsger Dijkstra “如果调试是消除软件Bug的过程,那么编程就是产出Bug的过程。” —— 艾兹格·迪杰斯特拉 0…

    Java 2023年4月22日
    00
  • JavaSE-面向对象(方法重写)

    下面是详细讲解”JavaSE-面向对象(方法重写)”的完整攻略: 什么是方法重写? Java中,当子类继承父类时,如果子类需要对父类中的某个方法进行重新实现,那么就可以使用方法重写。方法重写的核心是子类中的方法与父类中的方法拥有相同的名称和参数列表,但是子类中的方法具备不同的实现。 方法重写的语法 子类中的方法必须与父类中的方法具备相同的名称和参数列表,并且…

    Java 2023年5月26日
    00
  • Java HttpClient-Restful工具各种请求高度封装提炼及总结

    Java HttpClient-Restful工具各种请求高度封装提炼及总结 Java中的HttpClient和Restful工具是一些非常实用的工具,可用于完成HTTP请求的各种操作。本文将介绍如何使用Java HttpClient和Restful工具来实现HTTP请求的高度封装,并提供一些示例来帮助读者更好地理解。 HttpClient工具 1.为什么需…

    Java 2023年5月26日
    00
  • Spring AOP统一功能处理示例代码

    下面是关于“Spring AOP统一功能处理示例代码”的完整攻略: 1. 概述 AOP(Aspect Oriented Programming)是面向切面编程的缩写。它是一种新的编程思想,广泛应用于业务逻辑与系统设计中,目的是提高系统的可维护性、可扩展性和可复用性。Spring AOP是Spring框架中的一个模块,基于动态代理技术,实现了程序的非侵入式管理…

    Java 2023年5月26日
    00
  • 解决lambda表达式内出现异常无法throw抛出的问题

    当使用Lambda表达式时,可能会遇到无法抛出异常的问题。通常来说,在Lambda表达式中,我们不能throw出异常,因为这样做会导致代码无法编译。 但是,在一些特定的场合,我们还是需要在Lambda表达式中抛出异常。当这种情况发生时,我们可以通过使用java.util.function.Consumer或java.util.function.Supplie…

    Java 2023年5月27日
    00
  • Java开发之内部类对象的创建及hook机制分析

    Java开发之内部类对象的创建及hook机制分析 在Java中,内部类是定义在其他类中的类。内部类的创建方式和使用方式不同于普通类,需要注意一些细节和特殊机制。本篇攻略将详细讲解内部类对象的创建和hook机制。 内部类的创建 静态内部类的创建 静态内部类是在一个类内部定义的静态类。静态内部类的创建方式如下: public class OuterClass {…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部