powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Around срабатывает один раз AspectJ
3 сообщений из 3, страница 1 из 1
Around срабатывает один раз AspectJ
    #39694395
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начинаю изучать AspectJ и вот столкнулся с проблемой.

Есть такое:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@Aspect
public class HttpAspect {

    @Pointcut("execution(* com.ua.aspectj.HttpClient.get(..))")
    public void aspectjGet() { }

    @Before("aspectjGet()")
    public void getBefore(JoinPoint joinPoint) {
        System.out.println("ASPECT GET Before!");
    }

    @Around("aspectjGet()")
    public Object getAround(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("ASPECT GET Around!");
        return pjp.proceed();
    }

    @After("aspectjGet()")
    public void getAfter(JoinPoint joinPoint) {
        System.out.println("ASPECT GET After!");
    }

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class HttpClient {

    public void get(String url, Map<String, String>params) {
        // post request...
        System.out.println("GET");
        for(int i=0;i<1000;i++) {
            // work simulation
        }
    }

    public void post(String url, Map<String, String>params) {
        // post request...
        System.out.println("POST");
        for(int i=0;i<1000;i++) {
            // work simulation
        }
    }

}



Конфиг:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<aspectj>

    <aspects>
        <aspect name="com.ua.aspectj.HttpAspect"/>
    </aspects>

    <weaver options="-verbose -showWeaveInfo">
        <include within="com.ua.aspectj.*"/>
    </weaver>

</aspectj>



При запуске

Код: java
1.
2.
HttpClient httpClient = new HttpClient();
        httpClient.get("", new HashMap<String, String>());



выводит следующее:

авторASPECT GET Before!
ASPECT GET Around!
GET
ASPECT GET After!

Почему Around не срабатывает после того как метод отработал?
...
Рейтинг: 0 / 0
Around срабатывает один раз AspectJ
    #39694419
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

ну...
Код: java
1.
2.
3.
4.
5.
6.
    @Around("aspectjGet()")
    public Object getAround(ProceedingJoinPoint pjp) throws Throwable {
        Object result = pjp.proceed();
        System.out.println("ASPECT GET Around!");
        return result;
    }
...
Рейтинг: 0 / 0
Around срабатывает один раз AspectJ
    #39694426
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов, уже понял. Спасибо)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Around срабатывает один раз AspectJ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]