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中Period类的使用方法

    详解Java中Period类的使用方法 什么是Period类 在Java中,通过java.time包可以很方便地操作日期和时间。其中,Period类表示一个时间段,可以用于计算在两个日期之间的年、月、日的差值。Period类的构造函数有多种方式,最常见的是两个LocalDate对象直接计算得到。 构造Period对象 1. 两个LocalDate对象得到Pe…

    Java 2023年5月20日
    00
  • Spring WebClient实战示例

    Spring WebClient 实战示例 Spring WebClient 是 Spring 5 中引入的新特性,它是一种非阻塞式的 HTTP 客户端,可以用于调用 RESTful API 或其他 HTTP 服务。本文将详细讲解 Spring WebClient 的使用方法,并提供两个示例说明。 1. 创建 WebClient 对象 要使用 Spring …

    Java 2023年5月18日
    00
  • SpringMVC实现数据绑定及表单标签

    讲解“SpringMVC实现数据绑定及表单标签”的完整攻略如下: 1. 数据绑定 SpringMVC通过数据绑定将请求参数映射到控制器方法的入参中。实现数据绑定需要在控制器方法入参前面添加@ModelAttribute注解,例如: @RequestMapping(value="/user") public String showUserI…

    Java 2023年6月15日
    00
  • Tomcat Catalina为什么不new出来原理解析

    下面我会详细讲解“Tomcat Catalina为什么不new出来原理解析”的完整攻略。 背景 Tomcat Catalina是 Apache Tomcat 服务器的核心组件。关于为什么 Tomcat Catalina 不直接 new 出来,在 Tomcat 的官方文档中并没有详细的解释,本文将尝试解析该问题。 解析 在 Tomcat 的启动过程中,Cata…

    Java 2023年5月19日
    00
  • idea创建springboot项目和springcloud项目的详细教程

    下面是“IDEA创建Spring Boot项目和Spring Cloud项目的详细教程”的攻略: 创建Spring Boot项目 打开IntelliJ IDEA,点击菜单栏中的File → New → Project; 在弹出的New Project窗口中选择Spring Initializr,点击Next按钮; 在下一个页面中填写项目的基本信息(如Grou…

    Java 2023年5月19日
    00
  • Java设计模式之java外观模式详解

    Java外观模式是一种结构型设计模式,它可以为复杂的子系统提供一个简单的接口。通过使用外观模式,我们可以将整个子系统的复杂性隐藏在一个简单的接口后面,让客户端只需要与这个简单的接口进行交互,不需要关心具体实现细节。 外观模式的使用场景 外观模式在以下情况下可以得到应用: 当一个复杂的系统需要被分成多个子系统时,可以使用外观模式对外提供一个简单的接口,以隐藏子…

    Java 2023年5月24日
    00
  • SpringBoot中处理的转发与重定向方式

    SpringBoot中处理转发与重定向的方式有以下几种: 转发(forward) 使用转发的方式可以将请求转发给另一个URL处理,同时请求的地址栏不会发生改变。SpringBoot中使用ModelAndView来实现请求转发。示例如下: @RequestMapping("/test") public ModelAndView test()…

    Java 2023年6月15日
    00
  • Java毕业设计实战之共享租车信息管理系统的实现

    Java毕业设计实战之共享租车信息管理系统的实现 共享租车信息管理系统是一个基于Java的Web应用程序,它的主要作用是对租赁车辆进行管理和查询。本文将详细讲解实现该系统的完整攻略。 系统需求 在开始实现前,需要先明确系统的需求: 用户可以注册账号或使用已有账号登录系统; 用户可以浏览车辆信息,包含车辆图片、基本信息、租赁费用等; 用户可以选择租赁车辆,并提…

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