当前位置: 首页 > 知识库问答 >
问题:

在Spring Data Rest中更改主endpoint(使用Spring Boot)

邹山
2023-03-14

我使用Spring构建了一个小应用程序(Boot、Data、Data Rest)。我有一些JParepository,它们以Aumotiative的方式导出为Restendpoint。我要做的是将基路径从/更改为/api。现在,为了列出所有的人,例如,我对http://localhost:8080/people,我希望url为http://localhost:8080/api/people

public class SpringWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses()
{
    return new Class<?>[] { Application.class};
}
@Override
protected Class<?>[] getServletConfigClasses()
{
    return new Class<?>[] { RestExporterRestConfig.class, RepositoryRestMvcConfiguration.class };
}
@Override
protected String[] getServletMappings()
{       
    return new String[] { "/api/*" };
}   
}
@Configuration
@ComponentScan
@Import(RestExporterRestConfig.class)
@EnableJpaRepositories
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer {

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

}

和restexporterrestconfig:

@Configuration
public class RestExporterRestConfig extends RepositoryRestMvcConfiguration {

@Bean
public Validator validator() {
    return new LocalValidatorFactoryBean();
}

@Override
protected void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener v) {
    v.addValidator("beforeCreate", validator());
}

@Bean
@Qualifier
public DefaultFormattingConversionService defaultConversionService() {
    DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
    conversionService.addConverter(StringToDate.INSTANCE);
    return conversionService;
}

@Bean
public DomainClassConverter<?> domainClassConverter() {
    return new DomainClassConverter<DefaultFormattingConversionService>(defaultConversionService());
}

}

共有1个答案

易嘉胜
2023-03-14

我想通了。在本例中,SpringWebAppInitializer不是necesary。我刚刚在application.java中添加了以下代码:

@Bean
public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet)     {
    ServletRegistrationBean reg = new ServletRegistrationBean(dispatcherServlet);
    reg.addUrlMappings("/api/*");

    return reg;
}

我认为这是使用Spring Boot修改(添加、更改映射等)servlet的正确方法。

 类似资料:
  • 我有一个spring boot web应用程序,我正在使用actuator检查我的应用程序的状态。无论何时我做/健康,我都可以检查我的申请状态。我的疑问是,是否可以将/healthendpoint更改为类似于/ABC/health的内容(我需要为/health添加上下文)。有没有可能,或者我需要一个控制器来处理这个问题。

  • 我最近在运行macOS Mojave的Mac上安装了Apache Netbeans 9.0。我正在尝试将Netbeans主题更改为“Dark Look And Feel主题”,但我找不到选项。 以前,我使用过NetBeans的旧版本(8.2、8.1、8.0.2)。要更改主题,我导航到 安装“dark Look And Feel themes”插件并重新启动IDE以反映变化。 我还检查了这些插件是否

  • 我在google中找不到一个博客来更新Grails 3. x. x的主题插件。如果有人熟悉使用Grails 3. x. x项目附带的gradle属性文件玩主题,请告诉我... 升级到 3.x.x 版本后,我一直在努力与 Gradle 打交道 我尝试了以下方法,结果失败了。。。。 build.gradle | 解析依赖关系。请稍候。。。 配置失败 总时间: 13.404 秒 错误 |初始化类路径时出

  • 问题内容: 我在80多个不同的表中都有一个ReferenceIDvarchar(6)列。我需要在分配ID的政府组织实施更改之后,将其扩展到整个db的varchar(8)。 我希望声明一个游标以获取表名,如下所示: 然后按如下所示编辑类型: 之所以失败,是因为该列是某些表中主键的一部分(并且PK中包含的列因表而异)。 我真的不想不必为每个表手动删除并重新创建每个PK。 在游标中,有一种方法可以在更改

  • 问题内容: 我希望能够根据当前路径更改背景色。 我尝试通过每当路径更改时检查$ location.path()来执行此操作,然后使用伪指令更改背景色,但这似乎很简单(并且不起作用)。 什么是实现这一目标的更分离的方法? 如果有人想看,这是我写的代码。 问题答案: 为了消除样式,数据,内容等方面的动态变化,通常很实际的做法是创建另一个包含接口(自定义提供程序)的角度模块,该接口可让您在配置级别之前和

  • 我希望通过实现indicator为我的服务提供一个新的按需健康检查endpoint。问题是按需运行的endpoint在默认情况下被称为“/actuator/health”,因此我将默认运行状况endpoint分为两个运行状况组“/actuator/health/default” 现在出现了一个新问题,默认情况下,spring boot管理员将点击/actuator/health以获取相应的信息,我

  • 在这里,是主列键中的第三列。我想要做到这一点的唯一方法是将主复合键更改为。我找不到任何文档告诉我如何做到这一点。有可能吗? 或者,我是否错过了解决这个问题的“正确”方法/我是否曲解了这个问题?

  • 我是一个新的Android系统,我有一个按钮,当我点击按钮时,它会显示一个弹出菜单。 它有两个项目,白天和晚上。 当我按夜间按钮时,整个活动主题更改为黑色,文本颜色为白色,而按白天按钮时,活动主题更改为白色,文本颜色为黑色。 我有一个代码,但它只更改弹出菜单。 我如何更改活动主题。 我的代码: style.xml