springboot 使用tomcat 启动 404 问题解决方式

Posted spqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 使用tomcat 启动 404 问题解决方式相关的知识,希望对你有一定的参考价值。

学习备忘,希望对你有所帮助!!!

 

前言(废话)

为啥要用tomcat 启动spring boot 项目呢,spring boot 不是自带tomcat 吗? 原因本人嫌弃springboot 的热部署太慢了,纯属个人习惯。

 

1、先做一个SpringBoot 项目,过程不赘述,网上资源太多了。这里只给出pom文件的核心部分。

     1)打包方式,配置tomcat 时会出来一个war 让你选择。

<packaging>war</packaging>

     2)添加web 支持,加了这个依赖就可以使用SpringMvc了,写controller 的包都在这里。

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

2、写一个controller 供测试

package com.chaoming.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
@RequestMapping("/test")
public String test(){
return "Success";
}
}

3、SpringBoot 模式启动

     1)访问:http://localhost:8080/test

     2)返回结果:

         技术图片

 

 

 4、配置Tomcat启动,访问上述地址报 404错误。

 

        技术图片

 

 

 5、解决方式

      修改启动类,让类继承 SpringBootServletInitializer,重写 configure 方法

package com.chaoming.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoApplication.class);
    }
}

6、验证

技术图片

 

 至此两种方式启动都可以正常访问。

 

学习备忘,好记性的烂笔头。

 

以上是关于springboot 使用tomcat 启动 404 问题解决方式的主要内容,如果未能解决你的问题,请参考以下文章

springboot 使用tomcat 启动 404 问题解决方式

# SpringBoot | 怎样启动tomcat以及怎样配置tomcat。

SpringBoot内置tomcat启动过程及原理

SpringBoot配置外部Tomcat项目启动流程源码分析(上)

SpringBoot配置外部Tomcat项目启动流程源码分析(上)

SpringBoot如何使用内嵌Tomcat