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?