springboot配置context-path后如何配置统一前缀
时间: 2023-05-31 08:06:46 浏览: 148
springboot学习笔记
在Spring Boot中,可以通过配置`server.servlet.context-path`来设置应用程序的上下文路径(即context-path)。如果需要统一添加前缀,则可以使用Spring MVC中的`HandlerInterceptor`来拦截请求,并在请求路径前添加前缀。
具体步骤如下:
1. 创建一个`HandlerInterceptor`实现类,实现`preHandle`方法,在该方法中获取请求路径并添加前缀,然后将修改后的路径设置回请求中。
```
@Component
public class PrefixInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String prefix = "/api"; // 前缀
String requestURI = request.getRequestURI(); // 请求路径
String newURI = prefix + requestURI; // 添加前缀
request.getRequestDispatcher(newURI).forward(request, response); // 设置修改后的路径
return true;
}
}
```
2. 在Spring Boot配置类中添加`InterceptorRegistry`,并将上面创建的`HandlerInterceptor`添加到其中。
```
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private PrefixInterceptor prefixInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(prefixInterceptor).addPathPatterns("/**"); // 添加拦截器并设置拦截路径
}
}
```
3. 在`Controller`中使用`@RequestMapping`注解指定接口路径,如`/user`,拦截器会自动添加前缀,最终的请求路径为`/api/user`。
```
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/list")
public List<User> list() {
// ...
}
// ...
}
```
阅读全文