2
그래서 저지를 사용하여 작성된 RESTful 웹 서비스에서 컨텍스트 변수에 액세스하려는 시나리오가 있습니다. [[email protected],[email protected]]
, 그래서 쉽게 Request 객체에 액세스 할 수 있습니다 내가 인수 ARGS 것을 볼 수 있습니다 @Around
포인트 컷을 사용하여 내 측면에서aspectj에서 private 변수에 액세스하는 방법
@Path("hello")
public class Hello {
@Context
private UriInfo context;
@GET
@Produces("text/html")
public String getHtml(@Context Request request, @Context HttpServletRequest requestss) {
...
context.getBaseUri();
...
}
. 다음과 같이
내 측면은 다음과 같습니다
@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 클래스를 반환하지만 컨텍스트 필드는 private입니다. 가능한가? 나는 로딩 타임을 사용하고 있습니다.
당신이 당신의 안녕 클래스 공개'는 getContext()'방식을 추가 할 수 시도 할 수있다 가정, 몇 단계를 수행 할 필요 해요? 그렇지 않으면 Java 7 이상에서 [MethodHandle] (http://docs.oracle.com/javase/7/docs/api/java/lang/invoke/MethodHandle.html)을 참조하십시오. –
@ElliottFrisch 아니, 그 생각은 저지 애플 리케이션 (나를 쓰지 않은)에 대한 침입 로깅을하지 않는 것입니다 – Darek
당신은 자바 7에 있습니까? –