AspectJ - Tworzenie globalnego pola rejestratora przy użyciu deklaracji między typami

Chciałbym utworzyć deklarację Inter-Type, która deklaruje instancję Logger (statyczną końcową) wewnątrz każdej klasy.

Konstruktor powinien przejść klasę obejmującąKlazz.class wartość:

@Aspect
public class LoggerAspect {

    public interface Logger {
    }

    public static class LoggerImpl implements Logger {
        private static final Logger logger = 
          new Logger(thisJoinPoint.getTarget().getClass()/*.getName()*/);
    }

    @DeclareParents(value="com.my.api..*",defaultImpl=LoggerImpl.class)
    private Logger implementedInterface;
}

Napisałem powyższe rozwiązanie, ale nie mogę z niego korzystaćthisJoinPoint poza aspektemadvice.

Jeśli domyślna implementacja programu Logger jest stosowana do niektórych klas Klazz, jak mogę zmodyfikować powyższy kod, aby pomyślnie przekazać Klazz.class konstruktorowi Logger?

questionAnswers(2)

yourAnswerToTheQuestion