一尘不染

spring-boot如何提供特定的网址?

spring-boot

根据我以前的经验:

  • 使用pure时servlet,我们定义servlet,以便它可以处理与特定url匹配的请求。
  • 使用时struts2,我们定义了一个过滤器,以便它将处理与特定网址匹配的请求。
  • 当使用springMVC在传统的XML配置风格,我们定义了一个调度的servlet,使其成为要求相匹配的特定URL。

但是用spring-boot

似乎没有明确定义servlet或过滤器。但是它仍然可以提供特定的网址。

问题是:

  • 还在使用servlet吗?如果是,那么如何在不显式定义servlet或过滤器的情况下提供网址?

其他相关问题 (基于评论的提示)

  • 似乎SpringBootServletInitializer将在部署时调用该实现,但是谁来调用它呢?

阅读 421

收藏
2020-05-30

共1个答案

一尘不染

如您在此处详细看到的,在启动时,在初始化嵌入式服务器 (默认情况下为Tomcat)时,Spring Boot 创建并注册DispatcherServlet为servlet。

然后,像往常一样,Spring会 扫描您自己的类 (包括您SpringApplication.run()从中调用 的类
),并为控制器设置相应的映射(如果有)。例如/hello此处的映射:

@RestController
@EnableAutoConfiguration
public class TestSpring {

    @RequestMapping("/hello")
    String hello() {
        return "Hello World!";
    }

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

}
2020-05-30