为web层添加统一请求前缀可以通过Spring Boot提供的@RestControllerAdvice注解来实现,具体步骤如下:
步骤1:添加@RestControllerAdvice注解
在包含@Controller注解的基础类上添加@RestControllerAdvice注解,如下所示:
@RestControllerAdvice
public class BaseController {
}
步骤2:实现统一请求前缀
通过@EnableWebMvc注解来实现对请求前缀进行统一设置,如下所示:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.addPathPrefix("/api", HandlerTypePredicate.forAnnotation(RestController.class));
}
}
以上代码中,configurePathMatch
方法指向了接口 PathMatchConfigurer
,通过添加前缀的方式 addPathPrefix
设置了请求前缀为 /api
,并且只作用于带有 @RestController
注解的controller类。
示例说明1:不使用前缀的请求
例如原本在controller类中声明一个请求为 /hello
,则使用前缀前请求url为:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
此时不使用前缀时向该接口发送请求时,请求地址是 http://localhost:8080/hello
。
示例说明2:使用前缀的请求
在controller类上加入 @RequestMapping
注解为接口添加前缀,如下所示:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/")
public String user() {
return "User Info";
}
}
此时使用前缀时向该接口发送请求时,请求地址是 http://localhost:8080/api/user/
。
通过以上步骤,我们完成了向web层添加统一请求前缀的过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot如何为web层添加统一请求前缀 - Python技术站