【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版
1. 通过方法参数直接注入(Spring MVC 推荐)
在 Controller 方法中直接声明 HttpServletRequest
参数,Spring 会自动注入当前请求的 request
对象:
@GetMapping("/example")
public String example(HttpServletRequest request) {
String param = request.getParameter("name");
return "Param: " + param;
}
优点:简单直接,无需手动处理。
2. 通过 RequestContextHolder
工具类获取
在任何地方(如 Service 层、工具类)通过 Spring 的 RequestContextHolder
静态方法获取:
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
public class MyUtils {
public static void logRequest() {
HttpServletRequest request =
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
System.out.println("Request URI: " + request.getRequestURI());
}
}
适用场景:非 Controller 层(如 Service、AOP)需要获取 request
时。