Любопытная Весенняя AOP Исключение - PullRequest
1 голос
/ 28 сентября 2011

Я пытаюсь заставить работать мои первые в истории 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-схему.

1 Ответ

3 голосов
/ 28 сентября 2011

Убедитесь, что вы используете полное имя класса (или версию с подстановочными знаками, которая также соответствует), иначе сканер классов не найдет его.

...