Весенний конфликт, управляемый аннотациями, aop: aspectj-autoproxy и tx:

Другим вариантом, который также довольно популярен, является Java Service Wrapper . Это также довольно популярно в сообществе OSS.

0
задан Abdul 4 March 2019 в 02:11
поделиться

3 ответа

Это помогло мне. Я изменил тип возвращаемого значения List на java.util.List.

Как перехватить возвращаемый тип List с помощью выражения точечного вырезания AOP

@Aspect
@Component
public class MyItemDaoLoggingAspect {

    //this is wher we add all aspect logic 

    //@Before advice

    @Before("execution(public java.util.List getAllItems())")
    public void beforeVaalidateMyItem() {
        System.out.println(" ========> In MyItemDaoLoggingAspect");
        System.out.println(" ========> Executing beforeAscpect for validateMyItem");
    }
}
0
ответ дан Abdul 4 March 2019 в 02:11
поделиться

Эта строка вызывает проблему: @Before ("execute (public List getAllItems ())")

Необходимо удалить модификатор доступа и тип возврата метода, используемого при выполнении, и добавить полное имя класса где этот метод присутствует. см. ниже

@Before («выполнение ( поместите здесь полное имя класса .getAllItems ())»)

0
ответ дан Rohit Jain 4 March 2019 в 02:11
поделиться

Есть две вещи, которые могут вызвать проблемы в вашем коде.

1.Вы не определили полное имя метода. По крайней мере, требуется подстановочный знак.

2.Вы указали модификатор доступа в вашем pointcut как public , а для механизма прокси вы использовали proxy-target-class="true", который заставляет Spring использовать механизм прокси CGLIB. Но согласно " https: / /tenmilesquare.com/using-gclib-with-proxy-target-class-true/ "CGLIB не будет использовать прокси любого публичного метода.

Так что я бы предложил изменить ваш pointcut следующим образом.

"execution(* packageName.*.getAllItems(..))"

или попробуйте с полным именем метода в pointcut вместе с proxy-target-class="false"

Для получения более подробной информации о подписи pointcut см. Пункт 7.2.3.4 на https : //docs.spring.io/spring/docs/3.0.0.M4/reference/html/ch07s02.html

0
ответ дан Nawnit Sen 4 March 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: