簡體   English   中英

Jersey/Dropwizard 中 Spring RequestContextHolder 的等價物是什么

[英]What is the equivalent of Spring RequestContextHolder in Jersey/Dropwizard

我是 Dropwizard 的新手,我們需要在我們的 AspectJ 項目(本機不是 AOP)中獲取HttpServletRequest對象。 AspectJ項目在不同框架的不同項目中作為框架(jar)使用

下面的代碼是為 Spring Boot 項目獲取HttpServletRequest

Class<?> requestHolder = Class.forName("org.springframework.web.context.request.RequestContextHolder");
Method method = requestHolder.getMethod("currentRequestAttributes");
Object currentAttributes = method.invoke(requestHolder);
Class<?> servletAttributes = Class.forName("org.springframework.web.context.request.ServletRequestAttributes");
currentAttributes = servletAttributes.cast(currentAttributes);
method = currentAttributes.getClass().getMethod("getRequest");
Object httpRequest = method.invoke(currentAttributes);
if (httpRequest instanceof HttpServletRequest) {
    return (HttpServletRequest) httpRequest;
}

Jersey/Dopwizard 怎么辦?

您可以在代碼中注入 HttpServletRequest 對象,如下所示

@Inject
private Provider<HttpServletRequest> requestProvider;

您可以在 WebService 類中提供一個方法來訪問此請求對象。 在您的方面,您可以使用反射來調用此方法並訪問 HttpServletRequest

AspectJ 部分:創建一個注解,該注解可以應用於其余服務方法,該方法根據您想要的編寫方式在方法執行之前/周圍/之后觸發方面建議。 在通知中,我們通過從 joinPoint 獲取目標對象來調用 getHTTPServlet 方法調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM