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

Spring Boot:为RestControllers配置url前缀

叶鸿
2023-03-14
问题内容

我不是Spring专家,但作为黑匣子,即使凭Spring的文档,也很难凭我自己来解决问题。有时候,我只是不知道要寻找什么才能开始搜索…

在我的Spring Boot应用程序中,我试图弄清楚如何为我所有的RestControllers配置唯一的url前缀。

我真正要做的只是从根上下文“ /”提供我的静态内容,但让我的RestController端点从另一个上下文(例如“ / api / *”)访问。

我知道如何通过application.properties更改应用程序的默认上下文,但这不是我想要的。我在这里表示对servlet,映射等的无知,就像我说的那样,我试图为两种不同类型的内容获取两种不同的上下文。


问题答案:

我认为这是有道理的,尽管将其分为两个(或多个)应用程序是很常见的。假设您要处理(1)提供HTML / CSS / JS的网站和(2)REST
API。在控制器的顶部,您@RequestMapping可以通过使用定义“上下文” (不能有两个,因此根据您要实现的目标,它们又将位于不同的控制器中):

  • @RequestMapping(/web)
  • @RequestMapping(/api/v1)

…然后在这些控制器中的方法中,再次使用分配“ URL的其余部分” @RequestMapping(value = "/index", method = RequestMethod.GET)

例如/web/index/web/error; 以及:/api/v1/something/api/v1/something-else

拥有良好的封装约定将帮助您避免迷失于如此众多的 控制器

注意: 请记住,您不需要在每个方法中都重复相同的上下文,而只需“ URL的其余部分”。



 类似资料:
  • 在Springboot中有两个不同的@RestController使用不同的MappingJackson2HttpMessageConverter吗?...或者MappingJackson2HttpMessageConverter对于Spring Boot应用程序中的所有@RESTController是通用的吗? 基本上,目标是使用不同的MappingJackson2HttpMessageConv

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 简洁、优雅的URL 模式在高质量的Web 应用中是一个非常重要的细节。Django 允许你任意设计你的URL,不受框架束缚。 不要求有.php 或.cgi,更不会要求类似0,2097,1-1-1928,00 这样无意义的东西。 参见万维网的发明者Berners-Lee 的Cool URIs don’t change,里面有关于为什么URL 应该保持整洁和有意义的卓越的论证。 概览 为了给一个应用设

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

  • 我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误:

  • 本文向大家介绍详解SpringBoot Schedule配置,包括了详解SpringBoot Schedule配置的使用技巧和注意事项,需要的朋友参考一下 1. 定时任务实现方式 定时任务实现方式: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文

  • 我在SpringBoot应用程序中实现了多语言,在完成以下配置后,我得到的属性文件无法加载 文件夹名称 src/main/resources/i18n/messages 属性文件名 messages_us.properties 在应用程序主类 内部控制器 标题 接受-语言:我们 我明白了 [36mo.s.c.s.ResourceBundleMessageSource[0;39m[2m:[0;39m

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni