如何在Spring Boot中添加URL前缀

时间:2018-10-29 23:14:39

标签: spring spring-boot servlets

我有一个Spring Boot 2应用程序,主要用于REST端点,并且我想通过bean配置为端点添加前缀,而不是在application.yml文件中进行设置以使该前缀成为全局前缀。即example.com/api / 我知道您也可以在控制器类上使用注释对其进行配置,但是我想知道是否可以使用一个豆子。

1 个答案:

答案 0 :(得分:2)

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

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;
    }
}