所以我有一种情况,我想访问使用jersey编写的RESTful Web服务中的上下文变量。
@Path("hello") public class Hello { @Context private UriInfo context; @GET @Produces("text/html") public String getHtml(@Context Request request, @Context HttpServletRequest requestss) { ... context.getBaseUri(); ... } ```
在使用@Around切入点的方面,我可以看到参数是ARGS:,[org.glassfish.jersey.internal.inject.RequestInjectee@7d9d679,org.apache.catalina.connector.RequestFacade@6e8fa5f5]因此我可以轻松访问Request对象。
我的方面如下:
@Pointcut("execution(* *.getHtml(..))") public void methodCall() {} @Around("methodCall()") public Object aroundMethodCall(ProceedingJoinPoint pjp) throws Throwable { System.out.println("AROUND" + pjp.getSignature()); System.out.println("ARGS: "+ Arrays.toString(pjp.getArgs())); return pjp.proceed(); }
我想context从我的方面访问变量(记录它)。在我的方面,getThis()方法返回Hello类,但是上下文字段是私有的。可能吗 ?我正在使用加载时间编织。