SpringBoot之将jar应用转化为war应用

本文介绍如何将SpringBoot项目调整为传统的Web开发模式,包括修改主应用类、设置Maven打包类型为WAR以及配置Tomcat容器支持等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于习惯传统的web方式开发的程序猿们,刚开始不适应SpringBoot的可执行jar模式;

下面需要稍作 修改就可以用SpringBoot搭建传统的web开发项目;

第一步:将主应用类Application继承SpringBootServletInitializer类

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

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

}

第二步:在maven的pom.xml文件中,修改打包类型为:

<packaging>war</packaging>

第三步:对于Tomcat容器的支持,如果已经引入了Tomcat容器,或者使用别的容器,使用下面的配置

<dependencies>
    <!-- … -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- … -->
</dependencies>

注意:对于老的容器(Tomcat6.0)并不支持ServletContextInitializer,需要在项目中添加web.xml文件,然后在DispatchServlet中启动SpringBoot的Application主应用;

Servlet Containers支持的类型

SpringBoot定义了静态资源的存放地方,/public (or /static or /resources or /META-INF/resources) 同样properties属性文件也只能放在这些地方,SpringBoot应用启动的时候会自动检测并加载这些文件;

 同样如果项目不以war或者是可执行jar的方式启动,需要在application朱启动类中将main方法的方式关闭;具体方式如下:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return configureApplication(builder);
    }

    public static void main(String[] args) {
        configureApplication(new SpringApplicationBuilder()).run(args);
    }

    private static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) {
        return builder.sources(Application.class).bannerMode(Banner.Mode.OFF);
    }

}

后面说一下,SpringBoot应用部署到不同的容器中;

转载于:https://my.oschina.net/boreboluomiduo/blog/866123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值