SpringBoot项目jar和war打包部署方式详解

下面是关于“SpringBoot项目jar和war打包部署方式详解”的完整攻略:

1. Jar包部署方式

1.1 打包Jar包

在pom.xml文件中添加以下配置,可以打包成可执行jar文件:

<build>
    <plugins>
        <!--打包为可执行jar文件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

打包方式:

mvn clean package

1.2 运行Jar包

在命令行中运行以下命令,启动应用程序:

java -jar yourApplication.jar

1.3 示例1

以HelloWorld项目为例,首先创建一个spring-boot项目,然后添加一个HelloController:

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}

然后运行以下命令打包成可执行jar文件:

mvn clean package

最后在命令行中运行以下命令,启动应用程序:

java -jar yourApplication.jar

通过浏览器访问http://localhost:8080/hello,可以看到输出"Hello World!"的页面。

1.4 示例2

以一个名为myapp的应用程序为例,它将jar包作为一个单独的文件部署:

创建一个myapp项目,然后添加如下代码:

@SpringBootApplication
public class MyappApplication {

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

}

然后运行以下命令打包成可执行jar文件:

mvn clean package

最后将myapp-0.0.1-SNAPSHOT.jar文件复制到需要部署的文件夹中,这里我们选择复制到/opt/myapp文件夹中,然后在命令行中进入此文件夹运行以下命令:

java -jar myapp-0.0.1-SNAPSHOT.jar

通过浏览器访问http://localhost:8080即可看到页面。

2. War包部署方式

2.1 修改pom.xml文件

把spring-boot-starter-web的scope配置从默认的compile改为provided:

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

添加maven-war-plugin插件:

<build>
    <plugins>
        <!-- 打包为war文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins
            </groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>src/main/webapp</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

2.2 运行打包War文件

运行以下命令打包成war文件:

mvn clean package

最后将War文件复制到tomcat的webapps文件夹下,重启tomcat即可。

2.3 示例1

以HelloWorld项目为例,首先创建一个spring-boot项目,然后添加一个HelloController(参见Jar包部署方式中的示例1)。

接下来添加一个webapp目录,并在其中创建一个WEB-INF目录。在webapp目录中创建一个index.jsp文件并输入以下内容:

<!DOCTYPE html>
<html>
<head>
  <title>Hello World!</title>
</head>
<body>
<div class="container-fluid">
  <h1>Hello World!</h1>
</div>
</body>
</html>

在WEB-INF目录中创建一个web.xml文件并输入以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name>My Webapp</display-name>
  <description>My web application</description>
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

然后运行以下命令,将项目打包成war文件:

mvn clean package

在tomcat中部署war文件,然后在浏览器中访问【http://localhost:8080/】即可看到页面。

2.4 示例2

以myapp应用程序为例,我们按照以下步骤进行部署:

创建一个myapp项目,然后添加如下代码

@SpringBootApplication
public class MyappApplication extends SpringBootServletInitializer {

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

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

然后添加一个SampleController:

@RestController
public class SampleController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}

添加一个application.properties配置:

server.servlet.context-path=/myapp
server.port=8080

添加一个spring-mvc.xml配置文件,代码如下:

<mvc:annotation-driven/>
    <context:component-scan base-package="com.example.myapp.controller"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

在webapp目录下添加WEB-INF目录,然后在其中创建一个jsp目录,在jsp目录下创建一个测试页面test.jsp,代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>Hello World!</title>
</head>
<body>
<div class="container-fluid">
    <h1>Hello World!</h1>
</div>
</body>
</html>

添加一个控制器类MyController:

@Controller
public class MyController {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String displayMap(ModelMap map) {
        map.addAttribute("value", "Hello JSP and Spring MVC");
        return "test";
    }

}

运行以下命令打包成war文件:

mvn clean package

在tomcat中部署war文件后,在浏览器中访问http://localhost:8080/myapp/hello,即可看到输出Hello JSP and Spring MVC的页面。

以上是关于SpringBoot项目jar和war打包部署方式的详细攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目jar和war打包部署方式详解 - Python技术站

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

相关文章

  • Java中的Kafka为什么性能这么快及4大核心详析

    JAVA中的Kafka为什么性能这么快及4大核心详析 1. Kafka为什么性能快 Kafka之所以能够实现高吞吐量和低延迟,主要有以下几个方面: 1.1 高效的持久化机制 Kafka使用磁盘作为持久化存储方式,采用顺序IO的方式将数据写到磁盘上,而不是通过随机IO的方式。这种方式可以最大化地利用现代磁盘的效率,从而保证性能。 1.2 分布式架构 Kafka…

    Java 2023年5月20日
    00
  • 微信小程序模板消息推送的两种实现方式

    微信小程序的模板消息可以让开发者向用户发送特定的消息,提醒用户进行相关操作等。模板消息的推送可以有两种实现方式,分别是通过微信后台的服务接口进行推送和通过开发者自行实现后端服务器进行推送。 通过微信后台的服务接口进行推送 该方式需要先进行微信公众号的设置并获取相关的服务接口信息,具体实现步骤如下: 登录微信公众平台,进入开发-开发者工具-接口测试页; 选择模…

    Java 2023年5月23日
    00
  • 浅谈JDK8中的Duration Period和ChronoUnit

    下面我将详细讲解一下关于“浅谈JDK8中的Duration Period和ChronoUnit”的攻略。 什么是Duration和Period? 在Java8中,Duration和Period是两个时间间隔的类。它们可以用于各种时间操作,比如计算两个日期之间的差异,计算一个操作的持续时间等。 Duration类 Duration类表示时间上的持续时间,它可以…

    Java 2023年5月20日
    00
  • Java实现简单的酒店管理系统

    Java实现简单的酒店管理系统 系统需求 在开始编写系统代码之前,需要明确系统需求,以确定需要实现哪些功能。 管理员登录:管理员通过用户名和密码登录酒店管理系统。 房间管理:管理员可以添加、修改和删除房间信息,包括房间类型、房间号、房间价格、房间状态等。 客户管理:管理员可以添加、修改和删除客户信息,包括客户姓名、客户身份证号、客户联系方式等。 预定管理:管…

    Java 2023年5月19日
    00
  • 深入理解JavaScript中的对象

    深入理解JavaScript中的对象 什么是JavaScript中的对象 在JavaScript中,对象是一种复合数据类型,可以将它们看作是键值对的集合,其中每个键都是字符串类型,每个值可以是任何数据类型,包括更多的对象。JavaScript中的对象有两种基本类型:内置对象和自定义对象。内置对象指的是在JavaScript中已经定义好的对象,例如Math、D…

    Java 2023年5月26日
    00
  • Java实战之客户信息管理系统

    Java实战之客户信息管理系统攻略 在开发客户信息管理系统时,我们需要考虑以下几个方面: 系统需求 首先我们需要明确系统的需求,包括系统的功能以及性能等方面的要求。在实现这个过程中,我们可以采用敏捷开发的方式,分成多个阶段逐步完善。 技术栈 客户信息管理系统的开发需要运用到Java技术栈。包括Java、Spring框架、Mybatis等技术。针对不同的功能需…

    Java 2023年5月30日
    00
  • Java日期时间及日期相互转换实现代码

    下面是“Java日期时间及日期相互转换实现代码”的完整攻略: 1. Java日期时间基础 Java 日期时间类是 Java API 内置的类,主要包括以下两个部分: 日期类:Date 类是 JDK 1.0 中的类,主要用于表示日期和时间。 日期格式类:DateFormat 是格式化日期时间的抽象类,它可以将 Date 类型的时间格式化为指定格式的字符串,也可…

    Java 2023年5月20日
    00
  • 2020最新IDEA SpringBoot整合Dubbo的实现(zookeeper版)

    下面是详细讲解“2020最新IDEA SpringBoot整合Dubbo的实现(zookeeper版)”的完整攻略: 简介 Dubbo 是阿里巴巴提供的一个高性能 RPC 框架,支持多种协议和序列化方式,并提供了完善的服务治理方案。本文将介绍如何在 SpringBoot 中整合 Dubbo,使用 ZooKeeper 作为注册中心。完整代码可以在 GitHub…

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