springboot打包war部署到tomcat接口404

原文:https://blog.csdn.net/u013305783/article/details/74454966

主要的就是下面这个,重写configure。可以不用新建类直接在Application里面写

接着是新建一个ServletInitializer 并且集成自SpringBootServletInitializer 代码如下

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    // 不重写打包war部署到tomcat接口会报404
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

特别注意其中的Application要与我们自己建立的Application名称一样。

如果要放在其他tomcat上的话pom.xml需要加入:


<!-- 打war包时加入此项, 告诉spring-boot tomcat相关jar包用外部的,不要打进去 -->

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-tomcat</artifactId>

    <scope>provided</scope><!--由JDK或者容器提供-->

</dependency>

至于为什么要继承重写目前找到的说法如下:(具体还是要自己了解一下SpringBootServletInitializer)

这里继承SpringBootServletInitializer 并重写其中的configure方法目的是使用Spring框架的Servlet3.0支持。并且允许我们可以配置项目从serclet容器中启动。

SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。

具体还是要自己了解一下SpringBootServletInitializer。这里我就不做过多说明,目前还有那么大心思去了解运行原理等东西。

不过推荐一个搜到的连接。感觉应该讲的挺清楚的。以后再慢慢看:

https://www.jianshu.com/p/cb5cb5937686

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容