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日

相关文章

  • 麻雀虽小五脏俱全 Dojo自定义控件应用

    麻雀虽小五脏俱全 Dojo自定义控件应用是指采用Dojo技术栈自定义开发控件实现特定功能的过程。在这个过程中,我们使用Dojo提供的模块、函数、接口等来编写自己的控件,可以根据需求自由组合、扩展,从而实现功能丰富、灵活可定制的应用程序。下面是 Dojo 自定义控件应用的详细攻略: 1. 安装 Dojo 工具包 在使用 Dojo 进行开发之前,需要先安装 Do…

    Java 2023年6月15日
    00
  • java 中Map详解及实例代码

    下面是完整的“java 中Map详解及实例代码”攻略。 什么是Map? Map是一种用来存储键-值对数据的数据结构,常用于数据缓存、数据筛选等场景。 Map是一种抽象的数据类型,Java中通过接口Map来定义Map类型。Map接口的实现类有:HashMap、TreeMap、LinkedHashMap 等。 HashMap 什么是HashMap HashMap…

    Java 2023年5月23日
    00
  • SpringBoot使用validation-api实现对枚举类参数校验的方法

    在Spring Boot应用程序中,我们可以使用validation-api来实现对枚举类参数的校验。在本文中,我们将详细讲解如何使用validation-api来实现对枚举类参数的校验。 增加依赖 首先,我们需要在pom.xml文件中增加validation-api的依赖。下面是一个示例: <dependency> <groupId&gt…

    Java 2023年5月18日
    00
  • java调用oracle分页存储过程示例

    这是一个详细讲解“java调用oracle分页存储过程”的攻略,我们会带你一步一步完成该过程。 1. 确认是否已配置好Oracle驱动和Java开发环境 在开始前,我们需要确认Java运行环境是否已正确安装,并添加了Oracle的JDBC驱动。如果还没有安装的话,请先自行下载与配置。 2. 创建Oracle分页存储过程 我们需要在Oracle数据库中创建一个…

    Java 2023年6月1日
    00
  • SpringBoot + SpringSecurity 短信验证码登录功能实现

    下面我将详细讲解“SpringBoot + SpringSecurity 短信验证码登录功能实现”的完整攻略。 一、准备工作 1. 创建SpringBoot工程 首先,我们需要创建一个SpringBoot工程。可以使用IDEA等常见开发工具,快速创建一个SpringBoot工程。 2. 引入依赖 在pom.xml文件中,我们需要添加如下依赖: <dep…

    Java 2023年5月20日
    00
  • Elasticsearch文档索引基本操作增删改查示例

    下面是关于“Elasticsearch文档索引基本操作增删改查示例”的完整攻略: 背景简介 Elasticsearch是一个基于Lucene的搜索引擎,该引擎被用于全文搜索、结构化搜索、分析和存储数据。在Elasticsearch中,文档操作通常包括以下内容:文档的增加、删除、修改和查询。 文档索引操作 创建索引 在Elasticsearch中,要创建一个索…

    Java 2023年5月26日
    00
  • Java使用SFTP上传文件到服务器的简单使用

    Java使用SFTP上传文件到服务器的简单使用 什么是SFTP SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,通过SFTP可以实现加密的文件传输。SFTP已经被广泛应用于网站部署、数据备份、文件同步等场景。 SFTP的工作原理 SFTP是基于SSH协议实现的,其工作原理与FTP比较类似,但是SFTP具有更高的…

    Java 2023年5月19日
    00
  • java数组及arrays类对数组的操作实例

    Java数组及Arrays类对数组的操作实例 什么是数组 数组(Array)是一种用于存储多个相同类型数据的集合,它是在内存中顺序存储的一段连续空间。数组中的每个数据项称为数组元素(Element),它们在数组中的位置称为索引(Index),索引通常从0开始。 Java中的数组具有以下特点: 数组长度固定,一旦确定,就不能再修改。 数组中的元素必须是相同的数…

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