Я впервые экспериментирую с Spring AOP и застреваю в конфигурации XML.Я пытаюсь получить фиктивную версию «регистрации» на основе AOP, используя MethodInterceptor
, чтобы обернуть определенные вызовы методов и сделать несколько простых System.out.println
операторов до и после этих вызовов методов.Простые вещи, верно?
Так что в моем проекте много классов, два из них Fizz
и Buzz
.У Fizz есть метод с именем foo()
, а в Buzz есть метод с именем wapap()
.Каждый раз, когда эти методы вызываются во время выполнения, я хочу, чтобы мой LoggingInterceptor
выполнил свой метод invoke () вокруг них:
public class LoggingInterceptor implements MethodInterceptor
{
public Object invoke(MethodInvocation methodInvocation)
{
try
{
System.out.println("About to call a special method.");
Object result = methodInvocation.proceed();
return result;
}
finally
{
System.out.println("Finished executing the special method.");
}
}
}
Так что я понимаю концепции совета (мой перехватчик подразумевается), pointcuts (методы, которые будут выполнять рекомендации вокруг них), и советники pointcut (привязки между advice и pointcuts).
Я просто изо всех сил связываю его в простой конфигурации XML.
Вот что ядо сих пор, но я знаю, что в нем отсутствуют определения советника для pointcut и pointcut, и, возможно, еще.
<beans default-autowire="no" >
<bean name="loggingInterceptor" class="org.me.myproject.aop.LoggingInterceptor"/>
</beans>
Чего мне не хватает здесь, чтобы сделать это специфичным для Fizz :: foo () и Buzz:: wapap () вызывает?
Любые толчки в правильном направлении очень ценятся!