当前位置: 首页 > 面试题库 >

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

司徒光霁
2023-03-14
问题内容

根据我以前的经验:

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

但是用spring-boot

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

问题是:

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

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

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

问题答案:

如您在此处详细看到的,在启动时,在初始化嵌入式服务器 (默认情况下为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);
    }

}


 类似资料:
  • 我正在尝试将CSRF保护添加到基于Spring-Boot(尤其是WebFlux)的项目中。 到目前为止,我所尝试的是低于安全配置。 但当我尝试上述配置时,我看不到任何与CSRF令牌从服务器推送到浏览器相关的内容。它不是默认推送到客户端吗?如果是这样的话,向客户端(浏览器)提供CSRF令牌的更干净的方法是什么?其中spring文档提到了这一点。(我跟着这个- P、 S.(希望以下信息对回答有用) S

  • 问题内容: 我有以下三个应用程序: 项目1举行 业务逻辑(Spring Cloud功能) 接口 IDemoEntity 项目二 AWS特定的处理程序 IDemoEntity的 一种实现,具有DynamoDB特定的注释 该项目基于Spring Boot 项目3 IDemoEntity的 一种实现,带有CosmosDB批注 Azure特定的处理程序 项目1的类如下所示: 对于项目2,IDemoEnti

  • 我有以下三个申请: 项目1有效 业务逻辑(Spring Cloud函数) 接口IDemoEntity null null 对于项目3,IDemoEntity的实现看起来与DynamoDemoEntity类似,但带有CosmosDB注释。 结构看起来可能有点复杂,但其思想如下: 一次实现业务逻辑和数据模型(在项目1中)(利用Spring Cloud功能) 只为每个平台实现一个包装器项目(我从proj

  • null 目前,我已经为运行应用程序配置了postgres,并通过在和中使用不同的配置了用于测试的h2 对于这些场景,更改数据库连接信息的最简单方法是什么?

  • 问题内容: 这是我的Python3项目hiearchy: 从,我想运行提供该文件夹内容的http服务器。 这里提出这个代码来运行一个简单的HTTP服务器: 但其实这服务,而不是。如何指定要提供服务的文件夹的路径? 问题答案: https://docs.python.org/3/library/http.server.html#http.server.SimpleHTTPRequestHandler

  • 我正在通过spring boot启动一个嵌入式tomcat,并希望提供一个静态索引。html页面作为正在运行的应用程序的一部分。 但以下方法不起作用: 结果:当我调用localhost:8080时,我只看到单词“index”,而没有看到我的html页面。为什么?

  • 问题内容: 我无法让Spring-boot项目提供静态内容。 我已经放在一个命名的文件夹下。在其中,我有一个名为的文件夹。当我打包应用程序并运行它时,它找不到我放在该文件夹中的图像。 我试图把静态文件中,并但没有任何工程。 如果我我可以看到文件在正确文件夹的jar中:例如,但是调用:http://localhost:8080/images/head.png,我得到的只是一个404 有什么想法为什么