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

yizhihongxing

下面是关于“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日

相关文章

  • php UEditor百度编辑器安装与使用方法分享

    PHP UEditor百度编辑器安装与使用方法分享 什么是PHP UEditor百度编辑器? PHP UEditor百度编辑器是一个基于JavaScript的所见即所得富文本编辑器,能够在Web浏览器中编辑HTML文本和其他富媒体,如照片和视频。它是一个轻量级、高度定制的编辑器,非常适合PHP开发人员集成到他们的网站中。 安装PHP UEditor百度编辑器…

    Java 2023年6月15日
    00
  • es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

    下面我来详细讲解”es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解”的完整攻略。 概述 在实现微服务架构中,往往需要采用分布式搜索引擎来实现高可用和高性能的搜索功能,而ES(Elasticsearch)是分布式搜索引擎中最常用的一种。Spring Boot是一种快速开发框架,Spring Cloud是为实现微服…

    Java 2023年5月19日
    00
  • 微信小程序实现电子签名

    当涉及到微信小程序实现电子签名时,你需要考虑的几个方面包括: 1.实现方式:使用canvas绘制签名区域并导出图片保存。2.显示签名:使用Image组件或canvas绘制签名。3.文档验证:签名本身并不具有验证功能,需要合适的过程和算法确保签名的安全性。 接下来,我将详细讲解实现电子签名的完整攻略。 步骤1:创建签名区域 要在小程序中实现签名,你需要在页面上…

    Java 2023年5月23日
    00
  • PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法

    下面是关于PHP模拟登陆163邮箱并进行发邮件、获取通讯录列表的详细攻略。 步骤一:模拟登陆163邮箱 首先,我们需要进行模拟登陆163邮箱。为了实现这个目标,我们可以采用CURL库来构建HTTP请求,并通过DOMDocument和SimpleXMLElement处理HTML和XML文档。下面是模拟登陆的详细步骤: 1. 准备登陆数据 我们需要准备一个数组来…

    Java 2023年6月16日
    00
  • 利用SpringMVC过滤器解决vue跨域请求的问题

    利用 SpringMVC 过滤器解决 Vue 跨域请求的问题 在 Vue 开发中,我们经常会遇到跨域请求的问题。为了解决这个问题,我们可以使用 SpringMVC 过滤器来实现。本文将详细讲解如何利用 SpringMVC 过滤器解决 Vue 跨域请求的问题,并提供两个示例说明。 解决跨域请求的问题 在 Vue 开发中,我们经常会遇到跨域请求的问题。这是因为浏…

    Java 2023年5月18日
    00
  • 关于ArrayList初始化容量的问题

    关于ArrayList初始化容量的问题可以分成以下几个方面来讲解: 1. 初始化ArrayList对象 初始化一个ArrayList对象可以使用以下的代码: List<String> list = new ArrayList<>(); 上述代码将创建一个空的ArrayList对象。 2. 设置初始容量 在初始化ArrayList对象的…

    Java 2023年5月26日
    00
  • Java中指定时区的3种方法

    当我们在Java程序中处理时间的时候,常常会遇到需要指定时区的情况。正确地指定时区可以保证时间的正确性和跨时区的可靠性。以下是Java中指定时区的3种方法。 方法一:使用TimeZone类 Java中的TimeZone类提供了各种不同的时区,我们可以使用它来指定时区。常用的有如下几个方法: getTimeZone(String ID):根据时区ID获取一个T…

    Java 2023年5月20日
    00
  • SpringBoot Tomcat启动实例代码详解

    下面就为您详细讲解SpringBoot Tomcat启动实例代码详解的完整攻略。 什么是SpringBoot? SpringBoot是一个用于开发和构建非常容易和快捷的标准Spring应用程序的框架。它采用了约定优于配置的原则,为否简化了应用的开发和部署,提供了一种更加开箱即用的方式。 SpringBoot中的Tomcat启动实例代码详解 在 SpringB…

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