spring - 如何在 Spring Boot 中添加 URL 前缀
问题描述
我有一个 Spring Boot 2 应用程序,主要用于 REST 端点,我想通过 bean 配置向端点添加前缀,而不是在 application.yml 文件中设置使前缀全局的设置。即example.com/api/ _我知道您也可以在控制器类上使用注释配置它,但我想知道这是否可以用 bean 来完成。
解决方案
您可以通过以下方式执行此操作:
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;
}
}
推荐阅读
- python - 使用 Pygame 自行移动对象
- sql - 根据地址相似性查找示例
- paypal - Paypal 计费计划和计费协议
- jmeter - 我如何在 JMeter5.0 中连接工作台 Sql
- npm-install - npm install -g 工作正常,npm install 抛出错误“npm ERR!404 Not Found - GET http://registry.npmjs.org/storybook__addon-knobs - Not found”
- python - 当 csrf_enabled 为 True 时,Flask-WTF 抛出错误(设置了 SECRET_KEY)
- eclipse - 插件中没有依赖注入和缺少 EclispeContext
- reactjs - 在基于函数的组件中使用构造器项
- python - 为从同一数据框中提取的变量添加新记录到数据框中
- mysql - 排序字段的数据重复时MySql如何对数据进行排序?