инициализировать Aspect через AspectJProxyFactory

148
03 января 2020, 04:00

У меня есть аспект, который затрагивает всю систему, но мне нужно в определенный момент его использовать.

@Aspect
public class MyAspect {
    @Pointcut("execution(byte[] *io.example.sdk..getSeed(..))")
    public void getSeedMethod() {
    }
    @Around("getSeedMethod() && args( id)")
    public Object changeSeed(ProceedingJoinPoint pjp, int id) throws Throwable {
        System.out.println("#############################################");
        Object retval = pjp.proceed();
        return retval;
    }
}

Для этого в нужный момент я выполняю

AspectJProxyFactory factory = new AspectJProxyFactory(requestService);
factory.setProxyTargetClass(true);
factory.addAspect(MyAspect.class);
RequestService proxyRequest = factory.getProxy();

если MyAspect добавить в aop.xml как <aspect name="com.example.MyAspect"/> либо как include within, то AbstractAspectJAdvisorFactory будет проверять скомпилирован ли через Ajc, и если да, то вернет Ex

если уберу из aop.xml, то получим

NoSuchMethodException: com.example.MyAspect.aspectOf()

IllegalStateException: Method [aspectOf] was discovered in the .class file but cannot be resolved in the class object

потому что AJC не добавил в класс свои методы, в частности aspectOf()

Тогда как мне конкретный аспект использовать в определенном месте?

READ ALSO
Растянуть TextField по высоте в List

Растянуть TextField по высоте в List

Отчет в области detailсостоит из текстового поля (2) и списка с полями (3, 4, 5, 6)При переполнении поля 2 соответственно поля списка то же должны растянуться,...

209
Spring. JpaRepository. Использование запроса из файла query.sql

Spring. JpaRepository. Использование запроса из файла query.sql

Есть sql запрос в 14 строчекСейчас использую JpaRepository без

200
Медиа запросы не работают

Медиа запросы не работают

Здраствуйте! У меня появилась проблема - медиа запросы на опен сервере не работаютНо если я этот код запущу черерз гугл хром или codepan - всё...

154