AspectJ - Создание глобального поля Logger с использованием объявления между типами
Я хотел бы создать объявление Inter-Type, которое объявляет (статический окончательный) экземпляр Logger внутри каждого класса.
Конструктор должен быть передан вмещающий классKlazz.class
значение:
@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;
}
Я написал вышеупомянутое решение, однако я не могу использоватьthisJoinPoint
вне AspectJadvice
.
Если реализация Logger по умолчанию применяется к некоторому классу Klazz, как я могу изменить приведенный выше код для успешной передачи Klazz.class в конструктор Logger?