首页 > 解决方案 > 如何在 Spring Boot 中添加 URL 前缀

问题描述

我有一个 Spring Boot 2 应用程序,主要用于 REST 端点,我想通过 bean 配置向端点添加前缀,而不是在 application.yml 文件中设置使前缀全局的设置。即example.com/api/ _我知道您也可以在控制器类上使用注释配置它,但我想知道这是否可以用 bean 来完成。

标签: springspring-bootservlets

解决方案


您可以通过以下方式执行此操作:

import org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.DispatcherServlet;

@Configuration
public class DispatcherServletCustomConfiguration {

    @Bean
    public DispatcherServlet dispatcherServlet() {
        return new DispatcherServlet();
    }

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                dispatcherServlet(), "/api/");
        servletRegistrationBean.setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);
        return servletRegistrationBean;
    }
}

推荐阅读