springboot项目部署的两种方式

前言

前后端分离现如今为主流架构,springboot构建web应用,可以快速的打成jar包然后启动服务。

此外,springboot还可以打成war包,在外部tomcat上部署服务,此时,项目内若存在applcation.properties配置的server.port将不起作用。

一、jar包部署

  1. idea打开创建好的springboot工程,在maven中使用package打包(springboot工程默认打成jar)

    请添加图片描述

  2. 在target中找到打包好的jar包目录,打开cmd,使用命令行: java -jar 跟上jar包名称

    请添加图片描述
    请添加图片描述

  3. 注意pom中设置的项目的jdk版本和本地环境的jdk版本需要一致

        <properties>
            <java.version>1.8</java.version>
        </properties>
    
  4. 启动成功即可测试

请添加图片描述

二、war包部署

  1. pom修改打包方式

    <packaging>war</packaging>
    
  2. pom文件添加servlet的jar包依赖

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
    
  3. 排除springboot内置的tomcat干扰

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
  4. 改造启动类,核心启动类 继承SpringBootServletInitializer,并重写configure方法

    @SpringBootApplication
    public class SpringbootBaseApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootBaseApplication.class, args);
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(SpringbootBaseApplication.class);
        }
    }
    
  5. 在IDE的命令行使用mvn clean命令清除旧的包,并使用mvn package生成新的war包

请添加图片描述

  1. 启动本地tomcat运行 或者 将生成的war包丢到tomcat所在的webapps目录下,启动tomcat即可

请添加图片描述


jar包和war包方式对比

  1. 打jar包时不会把src/main/webapp下的内容打到jar包里,而打war包会
  2. 提供rest服务的项目需打成jar包,而又大量css、js、html而且需要经常改动的项目,打成war包运行比较方便,因为改动静态资源可以直接覆盖,很快看到改动后的效果
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 当我们将SpringBoot项目部署到服务器上时,可能会遇到一些问题,例如端口冲突等。为了解决这些问题,我们需要对项目的属性进行一些配置。一种常见的部署方式是将项目打包成war包并放到Tomcat服务器下。为了实现这种部署方式,我们可以创建一个ServletInitializer.java文件,继承SpringBootServletInitializer类,并覆盖configure()方法,将启动类Application注册进去。这样,在外部Web应用服务器构建Web Application Context时,会将启动类添加进去。这样我们就可以通过war包的方式部署SpringBoot项目了。\[2\]另外,SpringBoot项目也可以以jar包的方式进行部署,这是SpringBoot的默认部署方式。无论是以jar包还是war包的方式部署,我们都需要根据具体情况进行相应的配置和操作。\[3\] #### 引用[.reference_title] - *1* [SpringBoot项目上线运维](https://blog.csdn.net/qq_43456605/article/details/127934719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Spring Boot(八):SpringBoot项目如何部署上线(两种方式 jar包和war包)](https://blog.csdn.net/qq_44813090/article/details/104827001)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值