springboot 部署

作者:https://my.oschina.net/watsonos/blog/1647708 

  springboot的应用打包默认是打成jar包,并且如果是web应用的话,默认使用内置的tomcat充当servlet容器,但内置的tomcat有时候并不满足我们的需求,当我们需要把springboot的jar应用打包成war包并在外部tomcat中部署时,默认的设置就需要更改了。

        习惯SSM开发的同学可能会疑惑,不是直接打成war包然后扔到到tomcat的webapp下就行了的吗?然而,springboot默认的设置是:如果在类路径下有tomcat相关类文件,就会以内置tomcat进行启动,不管你是不是把war包扔到外置的tomcat下启动。

        要把springboot应用打包成war包并且能够在外部tomcat下启动,需要对项目进行以下改造:

1、在pom.xml文件中把打包方式改成war

<packaging>war</packaging>

2、添加maven的war打包插件如下

        <warName>可以给war包起个好名字,方便部署后访问使用。

        该配置可忽略,默认的打包名称为"name-1.0-SNAPSHOT",其中的name是项目(文件夹)名称。

        使用<warName>给war包起名字后,其实是把打包结果复制了一份并根据该名字重命名了而已,默认打的war包依然可以在打包路径找到。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <warName>infrastructure</warName>
    </configuration>
</plugin>

 

3、排除org.springframework.boot的web依赖中的tomcat内置容器

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

<!-- 这里面包含org.slf4j,版本:1.6.4;和com.fasterxml.jackson.core,版本:2.8.10 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>


4、继承SpringBootServletInitializer 

        在SpringBoot的启动类中,继承SpringBootServletInitializer类。

        该类是SpringBoot专门为使用非内置tomcat启动时,用于指定并初始化资源的。

        例子如下:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

}

5、依赖 javax.servlet API

        使用过SSM架构并打包war包的同学肯定也都知道这一步也是必不可少的

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>${servlet-api.version}</version>
    <scope>provided</scope>
</dependency>

        经过上述步骤的改造后,Spring Boot 项目打包成war包后,就可以直接放在tomcat部署了。

SpringBoot项目的部署可以按照以下步骤进行: 1. 在Maven项目中引入SpringBoot打包插件,以确保打包完整。这可以通过在项目的pom.xml文件中添加插件依赖来实现。 2. 配置SpringBoot多环境,根据不同的环境加载相应的配置文件。可以创建名为application-环境名.yml或者application-环境名.properties的配置文件,并在其中设置不同环境下的配置项。 3. 在部署时,使用JDK运行SpringBoot的jar包,并选择相应的环境。可以使用以下命令运行:java -jar jar包名 --spring.profiles.active=环境名。这样可以根据不同的环境加载相应的配置文件。 4. 确保防火墙中的端口对外开放,以便能够访问SpringBoot项目。可以使用以下命令检查防火墙设置:firewall-cmd --zone=public --list--ports。确保8080端口已经对外开放。 通过以上步骤,你可以成功地部署SpringBoot项目。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SpringBoot项目部署](https://blog.csdn.net/qq_48788523/article/details/123999714)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [springboot项目部署](https://blog.csdn.net/weixin_58414150/article/details/126943981)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值