Я пытаюсь заставить работать мои первые в истории SpringInop-методы MethodInterceptor, и получаю некоторые странные исключения с моей ультра-простой конфигурацией XML.
У меня есть класс с именем Food
, в котором есть метод с именем eat(ConsumptionRate rate)
, который принимает объект типа ConsumptionRate
в качестве единственного параметра; каждый раз, когда конкретный метод (Food::eat(ConsumptionRate)
) вызывается, я хочу, чтобы MethodInterceptor
выполнялся "вокруг него":
public class FoodInterceptor implements MethodInterceptor
{
public Object invoke(MethodInvocation method)
{
try
{
// Do some stuff before target method executes
Object result = method.proceed();
return result;
}
finally
{
// Do some stuff after target method executes.
}
}
}
Вот мой конфиг xml (aop-config.xml
) в полном объеме:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean name="foodInterceptor" class="com.me.foodproject.core.FoodInterceptor"/>
<aop:config>
<aop:advisor advice-ref="foodInterceptor"
pointcut="execution(public * Food.eat(..))"/>
</aop:config>
Проект компилируется нормально (компилируется и т. Д.), Но когда я его запускаю, я получаю следующую ошибку:
java.lang.IllegalArgumentException: warning no match for this type name: Food [Xlint:invalidAbsoluteTypeName]
Моя единственная догадка в том, что шаблон, указанный в атрибуте pointcut, как-то неверен (возможно, мне нужно как-то включить ConsumptionRate
в него). Но документацию для этой XML-схемы было почти невозможно найти, и я спотыкаюсь здесь в темноте.
У кого-нибудь есть предложения или есть что-то, что выпрыгивает из них? Заранее спасибо!
В качестве отступления , если кто-то знает сайт или какую-либо литературу, которая документирует все эти <aop>
теги и их атрибуты, пожалуйста, дайте мне знать. Мне была рекомендована глава 6 справочника Spring AOP, и хотя это очень всеобъемлющий учебник, он просто полон примеров и не описывает всю XML-схему.