Точки соединения AspectJ Inner-Class

Я думал бы, что большим фактором будет производительность. И веб-сервер / код приложения и SQL Server кэшировали бы обычно запрашиваемые данные в памяти, и Вы уничтожаете свою производительность кэша путем выполнения их в том же пространстве памяти.

5
задан Rich Seller 6 September 2009 в 17:22
поделиться

1 ответ

Вы можете использовать pointcut в или в пределах кода , чтобы соответствовать содержащему классу, и pointcut cflow , чтобы соответствовать выполнению метода addActionListener (), затем объедините его с pointcut execute , чтобы соответствовать телу метода actionPerformed ().

Например, этот pointcut будет соответствовать выполнению метода actionPerformed только внутри внутреннего класса InnerTest класса Test (при условии, что это test ) и только в потоке выполнения метода addActionListener:

pointcut innerTest(): within(test.Test.InnerTest) && 
    cflow(execution(public void javax.swing.JButton.addActionListener(java.awt.event.ActionListener))) && 
    execution(void actionPerformed(ActionEvent));

Если вас интересует только сопоставление вызовов к actionPerformed ( ) внутри внутреннего класса вы можете опустить предложение cflow.

It 'Стоит отметить, что если все, что вас интересует, это сопоставление выполнения любого метода actionPerformed (), этого будет достаточно:

pointcut innerTest(): 
    execution(void java.awt.event.ActionListener+.actionPerformed(ActionEvent));
7
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

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